diff --git a/Code/Mantid/Framework/MDEvents/CMakeLists.txt b/Code/Mantid/Framework/MDEvents/CMakeLists.txt index 3efc105b65fc14e6947143a902c5eac8ac1e7fd1..f8586b93ae1ff2f6b2e5c444b668f598dff87692 100644 --- a/Code/Mantid/Framework/MDEvents/CMakeLists.txt +++ b/Code/Mantid/Framework/MDEvents/CMakeLists.txt @@ -6,6 +6,7 @@ set ( SRC_FILES src/BoxController.cpp src/CloneMDEventWorkspace.cpp src/CoordTransform.cpp + src/CoordTransformAligned.cpp src/CoordTransformDistance.cpp src/CoordTransformDistanceParser.cpp src/CoordTransformParser.cpp @@ -49,6 +50,7 @@ set ( INC_FILES inc/MantidMDEvents/BoxController.h inc/MantidMDEvents/CloneMDEventWorkspace.h inc/MantidMDEvents/CoordTransform.h + inc/MantidMDEvents/CoordTransformAligned.h inc/MantidMDEvents/CoordTransformDistance.h inc/MantidMDEvents/CoordTransformDistanceParser.h inc/MantidMDEvents/CoordTransformParser.h @@ -82,6 +84,7 @@ set ( TEST_FILES test/AffineMatrixParameterTest.h test/BoxControllerTest.h test/CloneMDEventWorkspaceTest.h + test/CoordTransformAlignedTest.h test/CoordTransformDistanceParserTest.h test/CoordTransformDistanceTest.h test/CoordTransformParserTest.h diff --git a/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/BinToMDHistoWorkspace.h b/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/BinToMDHistoWorkspace.h index eb889ed89e8fc81d3089d60298e1c8490f24f8d3..a49c72a88891834ae7930c9cdf66ddd48a9ef84b 100644 --- a/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/BinToMDHistoWorkspace.h +++ b/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/BinToMDHistoWorkspace.h @@ -79,6 +79,9 @@ namespace MDEvents /// Index of the dimension in the MDEW for the dimension in the output. std::vector<size_t> dimensionToBinFrom; + /// Do we perform a coordinate transformation? NULL if no. + CoordTransform * m_transform; + /// Cached values for speed up size_t numBD; coord_t * min; diff --git a/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransform.h b/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransform.h index d1ee8fcb42f2e37040d1a3353a7ef204fc5d7b08..a1b474eb2d14607ab561cd994ac5bcae3546b342 100644 --- a/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransform.h +++ b/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransform.h @@ -32,52 +32,35 @@ namespace MDEvents */ class DLLExport CoordTransform { - protected: - /// Input number of dimensions - InDimParameter inD; - /// Output number of dimensions - OutDimParameter outD; - - /** Affine Matrix to perform the transformation. The matrix has inD+1 columns, outD+1 rows. - * By using an affine, translations and rotations (or other linear transforms) can be - * combined by simply multiplying the matrices. - */ - AffineMatrixParameter affineMatrixParameter; public: CoordTransform(const size_t inD, const size_t outD); virtual ~CoordTransform(); virtual std::string toXMLString() const; void addTranslation(const coord_t * translationVector); - Mantid::Kernel::Matrix<coord_t> getMatrix() const; - void setMatrix(const Mantid::Kernel::Matrix<coord_t> newMatrix); + const Mantid::Kernel::Matrix<coord_t> & getMatrix() const; + void setMatrix(const Mantid::Kernel::Matrix<coord_t> & newMatrix); + + virtual void apply(const coord_t * inputVector, coord_t * outVector) const; - //---------------------------------------------------------------------------------------------- - /** Apply the coordinate transformation - * - * @param inputVector :: fixed-size array of input coordinates, of size inD - * @param outVector :: fixed-size array of output coordinates, of size outD + protected: + /// Input number of dimensions + size_t inD; + + /// Output number of dimensions + size_t outD; + + /** Affine Matrix to perform the transformation. The matrix has inD+1 columns, outD+1 rows. + * By using an affine, translations and rotations (or other linear transforms) can be + * combined by simply multiplying the matrices. */ - virtual void apply(const coord_t * inputVector, coord_t * outVector) - { - // For each output dimension - for (size_t out = 0; out < outD.getValue(); ++out) - { - //Cache the row pointer to make the matrix access a bit faster - coord_t * rawMatrixRow = affineMatrixParameter.getRawMatrix()[out]; - coord_t outVal = 0.0; - size_t in; - for (in = 0; in < inD.getValue(); ++in) - outVal += rawMatrixRow[in] * inputVector[in]; + Mantid::Kernel::Matrix<coord_t> affineMatrix; - // The last input coordinate is "1" always (made homogenous coordinate out of the input x,y,etc.) - outVal += rawMatrixRow[in]; - // Save in the output - outVector[out] = outVal; - } - } + /// Raw pointer to the same underlying matrix as affineMatrix. + coord_t ** rawMatrix; + void copyRawMatrix(); }; diff --git a/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransformAligned.h b/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransformAligned.h new file mode 100644 index 0000000000000000000000000000000000000000..6a7e191fcf1837959626be94c4118466c73f7124 --- /dev/null +++ b/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransformAligned.h @@ -0,0 +1,66 @@ +#ifndef MANTID_MDEVENTS_COORDTRANSFORMALIGNED_H_ +#define MANTID_MDEVENTS_COORDTRANSFORMALIGNED_H_ + +#include "MantidKernel/System.h" +#include "MantidMDEvents/CoordTransform.h" +#include "MantidAPI/VectorParameter.h" + + +namespace Mantid +{ +namespace MDEvents +{ + + /// Unique type declaration for which dimensions are used in the input workspace + DECLARE_VECTOR_PARAMETER(DimensionsToBinFromParam, size_t); + + /** A restricted version of CoordTransform which transforms + from one set of dimensions to another, allowing: + + - An offset + - A reduction in the number of dimensions + - A scaling + + While a normal Affine matrix would handle this case, this special + case is used in order to reduce the number of calculation. + + @author Janik Zikovsky + @date 2011-08-29 + + Copyright © 2011 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://svn.mantidproject.org/mantid/trunk/Code/Mantid> + Code Documentation is available at: <http://doxygen.mantidproject.org> + */ + class DLLExport CoordTransformAligned : public CoordTransform + { + public: + CoordTransformAligned(const size_t inD, const size_t outD, const size_t * dimensionToBinFrom, + const coord_t * min, const coord_t * step); + virtual ~CoordTransformAligned(); + + protected: + + + }; + + +} // namespace MDEvents +} // namespace Mantid + +#endif /* MANTID_MDEVENTS_COORDTRANSFORMALIGNED_H_ */ diff --git a/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransformDistance.h b/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransformDistance.h index 25cefdf5706c3c8f6851869af6edaa31ed3c3b5e..488172e3a5da4b1f1dc22b88486553472542ca0c 100644 --- a/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransformDistance.h +++ b/Code/Mantid/Framework/MDEvents/inc/MantidMDEvents/CoordTransformDistance.h @@ -33,27 +33,24 @@ namespace MDEvents class DLLExport CoordTransformDistance : public CoordTransform { public: - typedef boost::scoped_ptr<DimensionsUsedVectorParam> DimensionUsedVec_scptr; - typedef boost::scoped_ptr<CoordCenterVectorParam> CoodCenterVec_scptr; - CoordTransformDistance(const size_t inD, const coord_t * center, const bool * dimensionsUsed); virtual ~CoordTransformDistance(); virtual std::string toXMLString() const; - virtual void apply(const coord_t * inputVector, coord_t * outVector); + void apply(const coord_t * inputVector, coord_t * outVector) const; /// Return the center coordinate array - const coord_t * getCenter() { return m_center->getPointerToStart(); } + const coord_t * getCenter() { return m_center; } /// Return the dimensions used bool array - const bool * getDimensionsUsed() { return m_dimensionsUsed->getPointerToStart(); } + const bool * getDimensionsUsed() { return m_dimensionsUsed; } protected: /// Coordinates at the center - CoodCenterVec_scptr m_center; + coord_t * m_center; /// Parmeter where True is set for those dimensions that are considered when calculating distance - DimensionUsedVec_scptr m_dimensionsUsed; + bool * m_dimensionsUsed; }; diff --git a/Code/Mantid/Framework/MDEvents/src/BinToMDHistoWorkspace.cpp b/Code/Mantid/Framework/MDEvents/src/BinToMDHistoWorkspace.cpp index 38a166963fc3662510d89ff54f92e03850612d94..9768363d0d5947aae2b8fac1e2a4629afdf74fe6 100644 --- a/Code/Mantid/Framework/MDEvents/src/BinToMDHistoWorkspace.cpp +++ b/Code/Mantid/Framework/MDEvents/src/BinToMDHistoWorkspace.cpp @@ -13,6 +13,10 @@ #include "MantidMDEvents/MDEventWorkspace.h" #include "MantidMDEvents/MDHistoWorkspace.h" #include <boost/algorithm/string.hpp> +#include "MantidMDEvents/CoordTransformParser.h" +#include <Poco/DOM/Element.h> +#include <Poco/DOM/Document.h> +#include <Poco/DOM/DOMParser.h> using Mantid::Kernel::CPUTimer; @@ -83,7 +87,12 @@ namespace MDEvents "This may be faster for workspaces with few events and lots of output bins."); declareProperty(new PropertyWithValue<bool>("Parallel",false,Direction::Input), "Temporary parameter: true to run in parallel."); + + declareProperty(new PropertyWithValue<std::string>("TransformationXML","",Direction::Input), + "XML string describing the coordinate transformation that converts from the MDEventWorkspace dimensions to the output dimensions."); + declareProperty(new WorkspaceProperty<Workspace>("OutputWorkspace","",Direction::Output), "A name for the output MDHistoWorkspace."); + } @@ -216,6 +225,9 @@ namespace MDEvents // If you get here, you could not determine that the entire box was in the same bin. // So you need to iterate through events. + // An array to hold each event's coordinates, rotated/transformed + coord_t * transformedCenter = new coord_t[numBD]; + const std::vector<MDE> & events = box->getConstEvents(); typename std::vector<MDE>::const_iterator it = events.begin(); typename std::vector<MDE>::const_iterator it_end = events.end(); @@ -258,6 +270,8 @@ namespace MDEvents } // Done with the events list box->releaseEvents(); + + delete [] transformedCenter; } @@ -310,7 +324,7 @@ namespace MDEvents // Total number of steps size_t progNumSteps = 0; - // Run the chunks in parallel. There is no overal in the output workspace so it is + // Run the chunks in parallel. There is no overlap in the output workspace so it is // thread safe to write to it.. PRAGMA_OMP( parallel for schedule(dynamic,1) if (doParallel) ) for(int chunk=0; chunk < int(binDimensions[chunkDimension]->getNBins()); chunk += chunkNumBins) @@ -372,7 +386,7 @@ namespace MDEvents if (prog) prog->report(); }// for each box in the vector - } // for each chunk + } // for each chunk in parallel @@ -518,10 +532,21 @@ namespace MDEvents std::string ImplicitFunctionXML = getPropertyValue("ImplicitFunctionXML"); implicitFunction = NULL; if (!ImplicitFunctionXML.empty()) - { implicitFunction = Mantid::API::ImplicitFunctionFactory::Instance().createUnwrapped(ImplicitFunctionXML); + + // De-serialize the coordinate transformation XML string + std::string TransformationXML = getPropertyValue("TransformationXML"); + m_transform = NULL; + if (!TransformationXML.empty()) + { + Poco::XML::DOMParser pParser; + Poco::XML::Document* pDoc = pParser.parseString(TransformationXML); + Poco::XML::Element* pRootElem = pDoc->documentElement(); + CoordTransformParser parser; + m_transform = parser.createTransform(pRootElem); } + prog = new Progress(this, 0, 1.0, 1); // This gets deleted by the thread pool; don't delete it in here. diff --git a/Code/Mantid/Framework/MDEvents/src/CoordTransform.cpp b/Code/Mantid/Framework/MDEvents/src/CoordTransform.cpp index 884460d256f80147e6d098bd0c9fddccc6a78c90..291a9e98b3389630e3cea85df460c7d406fe999e 100644 --- a/Code/Mantid/Framework/MDEvents/src/CoordTransform.cpp +++ b/Code/Mantid/Framework/MDEvents/src/CoordTransform.cpp @@ -4,6 +4,8 @@ #include <boost/algorithm/string.hpp> #include <boost/format.hpp> +#include "MantidKernel/Matrix.h" +#include "MantidGeometry/MDGeometry/MDTypes.h" using namespace Mantid::Geometry; using namespace Mantid::Kernel; @@ -14,6 +16,7 @@ namespace MDEvents { + //---------------------------------------------------------------------------------------------- /** Constructor. * Construct the affine matrix to and initialize to an identity matrix. @@ -22,7 +25,7 @@ namespace MDEvents * @throw std::runtime_error if outD > inD */ CoordTransform::CoordTransform(const size_t inD, const size_t outD) - : inD(inD), outD(outD), affineMatrixParameter(outD, inD) + : inD(inD), outD(outD), affineMatrix(outD+1, inD+1), rawMatrix(NULL) { if (outD > inD) throw std::runtime_error("CoordTransform: Cannot have more output dimensions than input dimensions!"); @@ -30,6 +33,17 @@ namespace MDEvents throw std::runtime_error("CoordTransform: invalid number of output dimensions!"); if (inD == 0) throw std::runtime_error("CoordTransform: invalid number of input dimensions!"); + affineMatrix.identityMatrix(); + + // Allocate the raw matrix + size_t nx = affineMatrix.numRows(); + size_t ny = affineMatrix.numCols(); + coord_t * tmpX = new coord_t[nx*ny]; + rawMatrix = new coord_t*[nx]; + for (size_t i=0;i<nx;i++) + rawMatrix[i] = tmpX + (i*ny); + // Copy into the raw matrix (for speed) + copyRawMatrix(); } //---------------------------------------------------------------------------------------------- @@ -37,26 +51,51 @@ namespace MDEvents */ CoordTransform::~CoordTransform() { + if (rawMatrix) + { + delete [] *rawMatrix; + delete [] rawMatrix; + } + rawMatrix=NULL; } + + //---------------------------------------------------------------------------------------------- + /** Copies the affine matrix into a local raw pointer, for speed. + * Call this after any change to affineMatrix + */ + void CoordTransform::copyRawMatrix() + { + for (size_t x=0; x < affineMatrix.numRows(); ++x) + for (size_t y=0; y < affineMatrix.numCols(); ++y) + rawMatrix[x][y] = affineMatrix[x][y]; + } + + //---------------------------------------------------------------------------------------------- /** Directly set the affine matrix to use. * * @param newMatrix :: (outD+1 * inD+1) matrix to set. * @throw runtime_error if the matrix dimensions are incompatible. */ - void CoordTransform::setMatrix(const Mantid::Kernel::Matrix<coord_t> newMatrix) + void CoordTransform::setMatrix(const Mantid::Kernel::Matrix<coord_t> & newMatrix) { - affineMatrixParameter.setMatrix(newMatrix); + if (newMatrix.numRows() != outD+1) + throw std::runtime_error("setMatrix(): Number of rows must match!"); + if (newMatrix.numCols() != inD+1) + throw std::runtime_error("setMatrix(): Number of columns must match!"); + affineMatrix = newMatrix; + // Copy into the raw matrix (for speed) + copyRawMatrix(); } //---------------------------------------------------------------------------------------------- /** Return the affine matrix in the transform. */ - Mantid::Kernel::Matrix<coord_t> CoordTransform::getMatrix() const + const Mantid::Kernel::Matrix<coord_t> & CoordTransform::getMatrix() const { - return affineMatrixParameter.getAffineMatrix(); + return affineMatrix; } //---------------------------------------------------------------------------------------------- @@ -66,20 +105,47 @@ namespace MDEvents */ void CoordTransform::addTranslation(const coord_t * translationVector) { - Matrix<coord_t> translationMatrix(outD.getValue()+1, inD.getValue()+1); + Matrix<coord_t> translationMatrix(outD+1, inD+1); // Start with identity translationMatrix.identityMatrix(); // Fill the last column with the translation value - for (size_t i=0; i < outD.getValue(); i++) - translationMatrix[i][inD.getValue()] = translationVector[i]; + for (size_t i=0; i < outD; i++) + translationMatrix[i][inD] = translationVector[i]; // Multiply the affine matrix by the translation affine matrix to combine them - Matrix<coord_t> currentAffine = affineMatrixParameter.getAffineMatrix(); - currentAffine *= translationMatrix; + affineMatrix *= translationMatrix; - affineMatrixParameter.setMatrix(currentAffine); + // Copy into the raw matrix (for speed) + copyRawMatrix(); } + + //---------------------------------------------------------------------------------------------- + /** Apply the coordinate transformation + * + * @param inputVector :: fixed-size array of input coordinates, of size inD + * @param outVector :: fixed-size array of output coordinates, of size outD + */ + void CoordTransform::apply(const coord_t * inputVector, coord_t * outVector) const + { + // For each output dimension + for (size_t out = 0; out < outD; ++out) + { + //Cache the row pointer to make the matrix access a bit faster + coord_t * rawMatrixRow = rawMatrix[out]; + coord_t outVal = 0.0; + size_t in; + for (in = 0; in < inD; ++in) + outVal += rawMatrixRow[in] * inputVector[in]; + + // The last input coordinate is "1" always (made homogenous coordinate out of the input x,y,etc.) + outVal += rawMatrixRow[in]; + // Save in the output + outVector[out] = outVal; + } + } + + //---------------------------------------------------------------------------------------------- /** Serialize the coordinate transform * @@ -109,8 +175,14 @@ namespace MDEvents DOMWriter writer; writer.writeNode(xmlstream, pDoc); + // Convert the members to parameters + AffineMatrixParameter affineMatrixParameter(inD, outD); + affineMatrixParameter.setMatrix(affineMatrix); + InDimParameter inD_param(inD); + OutDimParameter outD_param(outD); + std::string formattedXMLString = boost::str(boost::format(xmlstream.str().c_str()) - % inD.toXMLString().c_str() % outD.toXMLString().c_str() % affineMatrixParameter.toXMLString().c_str()); + % inD_param.toXMLString().c_str() % outD_param.toXMLString().c_str() % affineMatrixParameter.toXMLString().c_str()); return formattedXMLString; } diff --git a/Code/Mantid/Framework/MDEvents/src/CoordTransformAligned.cpp b/Code/Mantid/Framework/MDEvents/src/CoordTransformAligned.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8777ff430912711f7c01be4443c962dcb801416f --- /dev/null +++ b/Code/Mantid/Framework/MDEvents/src/CoordTransformAligned.cpp @@ -0,0 +1,35 @@ +#include "MantidMDEvents/CoordTransformAligned.h" +#include "MantidKernel/System.h" + +using namespace Mantid::Kernel; +using namespace Mantid::API; + +namespace Mantid +{ +namespace MDEvents +{ + + + //---------------------------------------------------------------------------------------------- + /** Constructor + */ + CoordTransformAligned::CoordTransformAligned(const size_t inD, const size_t outD, const size_t * /*dimensionToBinFrom*/, + const coord_t * /*min*/, const coord_t * /*step*/) + : CoordTransform(inD, outD) + { + // TODO Auto-generated constructor stub + } + + //---------------------------------------------------------------------------------------------- + /** Destructor + */ + CoordTransformAligned::~CoordTransformAligned() + { + // TODO Auto-generated destructor stub + } + + + +} // namespace Mantid +} // namespace MDEvents + diff --git a/Code/Mantid/Framework/MDEvents/src/CoordTransformDistance.cpp b/Code/Mantid/Framework/MDEvents/src/CoordTransformDistance.cpp index b01b43cc6e8152c3271ba3e863183772230082ac..70858b033c7eef8f2e6376befdc6a454fee4b6ca 100644 --- a/Code/Mantid/Framework/MDEvents/src/CoordTransformDistance.cpp +++ b/Code/Mantid/Framework/MDEvents/src/CoordTransformDistance.cpp @@ -26,13 +26,15 @@ namespace MDEvents * @return */ CoordTransformDistance::CoordTransformDistance(const size_t inD, const coord_t * center, const bool * dimensionsUsed) - : CoordTransform(inD, 1), m_center(new CoordCenterVectorParam(inD)), m_dimensionsUsed(new DimensionsUsedVectorParam(inD)) + : CoordTransform(inD, 1) { // Create and copy the arrays. + m_center = new coord_t[inD]; + m_dimensionsUsed = new bool[inD]; for (size_t d=0; d<inD; d++) { - m_center->addValue(d, center[d]); - m_dimensionsUsed->addValue(d, dimensionsUsed[d]); + m_center[d] = center[d]; + m_dimensionsUsed[d] = dimensionsUsed[d]; } } @@ -41,6 +43,8 @@ namespace MDEvents */ CoordTransformDistance::~CoordTransformDistance() { + delete m_center; + delete m_dimensionsUsed; } @@ -53,14 +57,14 @@ namespace MDEvents * @param inputVector :: fixed-size array of input coordinates, of size inD * @param outVector :: fixed-size array of output coordinates, of size 1 */ - void CoordTransformDistance::apply(const coord_t * inputVector, coord_t * outVector) + void CoordTransformDistance::apply(const coord_t * inputVector, coord_t * outVector) const { coord_t distanceSquared = 0; - for (size_t d=0; d<inD.getValue(); d++) + for (size_t d=0; d<inD; d++) { - if (true == m_dimensionsUsed->at(d)) + if (m_dimensionsUsed[d]) { - coord_t dist = inputVector[d] - m_center->at(d); + coord_t dist = inputVector[d] - m_center[d]; distanceSquared += (dist * dist); } } @@ -96,11 +100,24 @@ namespace MDEvents DOMWriter writer; writer.writeNode(xmlstream, pDoc); + // Convert the members to parameters + InDimParameter inD_param(inD); + OutDimParameter outD_param(outD); + CoordCenterVectorParam m_center_param(inD); + DimensionsUsedVectorParam m_dimensionsUsed_param(inD); + + // Create and copy the arrays. + for (size_t d=0; d<inD; d++) + { + m_center_param.addValue(d, m_center[d]); + m_dimensionsUsed_param.addValue(d, m_dimensionsUsed[d]); + } + std::string formattedXMLString = boost::str(boost::format(xmlstream.str().c_str()) - % inD.toXMLString().c_str() - % outD.toXMLString().c_str() - % m_center->toXMLString().c_str() - % m_dimensionsUsed->toXMLString().c_str()); + % inD_param.toXMLString().c_str() + % outD_param.toXMLString().c_str() + % m_center_param.toXMLString().c_str() + % m_dimensionsUsed_param.toXMLString().c_str()); return formattedXMLString; } diff --git a/Code/Mantid/Framework/MDEvents/test/CoordTransformAlignedTest.h b/Code/Mantid/Framework/MDEvents/test/CoordTransformAlignedTest.h new file mode 100644 index 0000000000000000000000000000000000000000..da16e8c239adb89ecdf1e9ebe4f1e3acdbc5f0aa --- /dev/null +++ b/Code/Mantid/Framework/MDEvents/test/CoordTransformAlignedTest.h @@ -0,0 +1,29 @@ +#ifndef MANTID_MDEVENTS_COORDTRANSFORMALIGNEDTEST_H_ +#define MANTID_MDEVENTS_COORDTRANSFORMALIGNEDTEST_H_ + +#include <cxxtest/TestSuite.h> +#include "MantidKernel/Timer.h" +#include "MantidKernel/System.h" +#include <iostream> +#include <iomanip> + +#include "MantidMDEvents/CoordTransformAligned.h" + +using namespace Mantid; +using namespace Mantid::MDEvents; +using namespace Mantid::API; + +class CoordTransformAlignedTest : public CxxTest::TestSuite +{ +public: + + void test_Something() + { + } + + +}; + + +#endif /* MANTID_MDEVENTS_COORDTRANSFORMALIGNEDTEST_H_ */ +