Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/feature/7617_fullprof_to_xml'
Browse files Browse the repository at this point in the history
  • Loading branch information
wdzhou committed Oct 9, 2013
2 parents 7ce73e5 + 04ac658 commit 31a5ed2
Show file tree
Hide file tree
Showing 6 changed files with 849 additions and 8 deletions.
3 changes: 3 additions & 0 deletions Code/Mantid/Framework/DataHandling/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
set ( SRC_FILES
src/AppendGeometryToSNSNexus.cpp
src/CompressEvents.cpp
src/ConvertFullprofToXML.cpp
src/CreateChopperModel.cpp
src/CreateModeratorModel.cpp
src/CreateSampleShape.cpp
Expand Down Expand Up @@ -134,6 +135,7 @@ set ( SRC_FILES
set ( INC_FILES
inc/MantidDataHandling/AppendGeometryToSNSNexus.h
inc/MantidDataHandling/CompressEvents.h
inc/MantidDataHandling/ConvertFullprofToXML.h
inc/MantidDataHandling/CreateChopperModel.h
inc/MantidDataHandling/CreateModeratorModel.h
inc/MantidDataHandling/CreateSampleShape.h
Expand Down Expand Up @@ -268,6 +270,7 @@ set ( TEST_FILES
#LoadSNSNexusTest.h # TODO has no active tests in it
AppendGeometryToSNSNexusTest.h
CompressEventsTest.h
ConvertFullprofToXMLTest.h
CreateChopperModelTest.h
CreateModeratorModelTest.h
CreateSampleShapeTest.h
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
#ifndef MANTID_DATAHANDLING_CONVERTFULLPROFTOXML_H_
#define MANTID_DATAHANDLING_CONVERTFULLPROFTOXML_H_

#include "MantidAPI/Algorithm.h"
#include "MantidAPI/ITableWorkspace.h"

#include <Poco/DOM/Element.h>

namespace Mantid
{
namespace DataHandling
{

/** ConvertFullprofToXML : Convert a fullprof resolution file to an instrument parameter file
Copyright &copy; 2013 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 ConvertFullprofToXML : public API::Algorithm
{
public:
ConvertFullprofToXML();
virtual ~ConvertFullprofToXML();

/// Algorithm's name for identification overriding a virtual method
virtual const std::string name() const { return "ConvertFullprofToXML";}

/// 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";}

private:
/// Sets documentation strings for this algorithm
virtual void initDocs();
/// Implement abstract Algorithm methods
void init();
/// Implement abstract Algorithm methods
void exec();

/// Load file to a vector of strings
void loadFile(std::string filename, std::vector<std::string>& lines);

/// Add an ALFBE parameter
void addALFBEParameter(const API::Column_const_sptr, Poco::XML::Document* mDoc, Poco::XML::Element* parent, const std::string& paramName);

/// Add set of Sigma parameters
void addSigmaParameters(const API::Column_const_sptr, Poco::XML::Document* mDoc, Poco::XML::Element* parent );

/// Add set of Gamma parameters
void addGammaParameters(const API::Column_const_sptr, Poco::XML::Document* mDoc, Poco::XML::Element* parent );

/// Get value for XML eq attribute for parameter
std::string getXMLEqValue( const API::Column_const_sptr, const std::string& name );

// Translate a parameter name from as it appears in the table workspace to its name in the XML file
std::string getXMLParameterName( const std::string& name );

/// Get row numbers of the parameters in the table workspace
void getTableRowNumbers(const API::ITableWorkspace_sptr & tablews, std::map<std::string, size_t>& parammap);

/// Place to store the row numbers
std::map<std::string, size_t> m_rowNumbers;

};


} // namespace DataHandling
} // namespace Mantid

#endif /* MANTID_DATAHANDLING_CONVERTFULLPROFTOXML_H_ */

0 comments on commit 31a5ed2

Please sign in to comment.