diff --git a/Framework/DataHandling/CMakeLists.txt b/Framework/DataHandling/CMakeLists.txt index 2e37772e33d2..53e12e901b86 100644 --- a/Framework/DataHandling/CMakeLists.txt +++ b/Framework/DataHandling/CMakeLists.txt @@ -27,7 +27,6 @@ set(SRC_FILES src/GenerateGroupingPowder2.cpp src/GroupDetectors.cpp src/GroupDetectors2.cpp - src/H5Util.cpp src/ISISDataArchive.cpp src/ISISJournal.cpp src/ISISJournalGetExperimentRuns.cpp @@ -251,7 +250,6 @@ set(INC_FILES inc/MantidDataHandling/GenerateGroupingPowder2.h inc/MantidDataHandling/GroupDetectors.h inc/MantidDataHandling/GroupDetectors2.h - inc/MantidDataHandling/H5Util.h inc/MantidDataHandling/ISISDataArchive.h inc/MantidDataHandling/ISISJournal.h inc/MantidDataHandling/ISISJournalGetExperimentRuns.h @@ -475,7 +473,6 @@ set(TEST_FILES GenerateGroupingPowder2Test.h GroupDetectors2Test.h GroupDetectorsTest.h - H5UtilTest.h ISISDataArchiveTest.h ISISJournalGetExperimentRunsTest.h ISISJournalTest.h diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadHelper.h b/Framework/DataHandling/inc/MantidDataHandling/LoadHelper.h index 502e849bb0be..84470cd8b0cf 100644 --- a/Framework/DataHandling/inc/MantidDataHandling/LoadHelper.h +++ b/Framework/DataHandling/inc/MantidDataHandling/LoadHelper.h @@ -6,8 +6,10 @@ // SPDX - License - Identifier: GPL - 3.0 + #pragma once +#include "MantidAPI/MatrixWorkspace_fwd.h" #include "MantidAPI/Run.h" #include "MantidDataHandling/DllConfig.h" +#include "MantidKernel/Quat.h" #include "MantidNexus/NexusClasses.h" namespace Mantid { diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadISISNexus2.h b/Framework/DataHandling/inc/MantidDataHandling/LoadISISNexus2.h index 4107a5d34c2a..a12fd8f4485e 100644 --- a/Framework/DataHandling/inc/MantidDataHandling/LoadISISNexus2.h +++ b/Framework/DataHandling/inc/MantidDataHandling/LoadISISNexus2.h @@ -116,7 +116,8 @@ class MANTID_DATAHANDLING_DLL LoadISISNexus2 : public API::IFileLoader m_nexusFile; // clang-format on - bool findSpectraDetRangeInFile(NeXus::NXEntry &entry, std::vector &spectrum_index, int64_t ndets, - int64_t n_vms_compat_spectra, std::map &monitors, + bool findSpectraDetRangeInFile(const NeXus::NXEntry &entry, std::vector &spectrum_index, int64_t ndets, + int64_t n_vms_compat_spectra, const std::map &monitors, bool excludeMonitors, bool separateMonitors); /// Check if is the file is a multiple time regime file diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadMLZ.h b/Framework/DataHandling/inc/MantidDataHandling/LoadMLZ.h index fa65d5cc4fc2..b172d8279e6a 100644 --- a/Framework/DataHandling/inc/MantidDataHandling/LoadMLZ.h +++ b/Framework/DataHandling/inc/MantidDataHandling/LoadMLZ.h @@ -42,14 +42,14 @@ class MANTID_DATAHANDLING_DLL LoadMLZ : public API::IFileLoader> getMonitorInfo(NeXus::NXEntry &firstEntry); - void initWorkSpace(NeXus::NXEntry &entry); + void initWorkspace(const NeXus::NXEntry &entry); void initInstrumentSpecific(); void loadRunDetails(NeXus::NXEntry &entry); void loadExperimentDetails(const NeXus::NXEntry &entry); NeXus::NXData loadNexusFileData(NeXus::NXEntry &entry); void maskDetectors(const NeXus::NXEntry &entry); - void loadDataIntoTheWorkSpace(NeXus::NXEntry &entry); //, int ElasticPeakPosition = -1); + void loadDataIntoTheWorkSpace(const NeXus::NXEntry &entry); //, int ElasticPeakPosition = -1); void runLoadInstrument(); diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadNexusProcessed.h b/Framework/DataHandling/inc/MantidDataHandling/LoadNexusProcessed.h index 7b84c6ba39c7..b0184332c5e5 100644 --- a/Framework/DataHandling/inc/MantidDataHandling/LoadNexusProcessed.h +++ b/Framework/DataHandling/inc/MantidDataHandling/LoadNexusProcessed.h @@ -13,6 +13,7 @@ #include "MantidAPI/ITableWorkspace_fwd.h" #include "MantidAPI/MatrixWorkspace_fwd.h" #include "MantidAPI/NexusFileLoader.h" +#include "MantidAPI/Sample.h" #include "MantidDataHandling/DllConfig.h" #include "MantidHistogramData/BinEdges.h" #include "MantidKernel/cow_ptr.h" diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadSINQFocus.h b/Framework/DataHandling/inc/MantidDataHandling/LoadSINQFocus.h index 736425eb1a40..f8e9b5aa4edd 100644 --- a/Framework/DataHandling/inc/MantidDataHandling/LoadSINQFocus.h +++ b/Framework/DataHandling/inc/MantidDataHandling/LoadSINQFocus.h @@ -46,7 +46,7 @@ class MANTID_DATAHANDLING_DLL LoadSINQFocus : public API::IFileLoader #include +#include namespace { @@ -380,7 +382,7 @@ void DataBlockComposite::removeSpectra(DataBlockComposite &toRemove) { // Now create the new intervals which don't include the removeInterval // values std::vector newIntervals; - for (auto &originalInterval : originalIntervals) { + for (const auto &originalInterval : originalIntervals) { // Find all relevant remove intervals. In principal this could // be made more efficient. auto currentRemovalIntervals = diff --git a/Framework/DataHandling/src/LoadDiffCal.cpp b/Framework/DataHandling/src/LoadDiffCal.cpp index e244a1810167..01f1043e9523 100644 --- a/Framework/DataHandling/src/LoadDiffCal.cpp +++ b/Framework/DataHandling/src/LoadDiffCal.cpp @@ -11,7 +11,6 @@ #include "MantidAPI/Progress.h" #include "MantidAPI/Run.h" #include "MantidAPI/TableRow.h" -#include "MantidDataHandling/H5Util.h" #include "MantidDataHandling/LoadCalFile.h" #include "MantidDataObjects/GroupingWorkspace.h" #include "MantidDataObjects/MaskWorkspace.h" @@ -21,6 +20,7 @@ #include "MantidKernel/Exception.h" #include "MantidKernel/OptionalBool.h" #include "MantidKernel/Unit.h" +#include "MantidNexus/H5Util.h" #include #include @@ -44,6 +44,7 @@ using Mantid::Kernel::PropertyWithValue; using Mantid::Kernel::Exception::FileError; using namespace H5; +using namespace NeXus; namespace { enum class CalibFilenameExtensionEnum { H5, HD5, HDF, CAL, enum_count }; diff --git a/Framework/DataHandling/src/LoadILLDiffraction.cpp b/Framework/DataHandling/src/LoadILLDiffraction.cpp index e7c409f88a2d..695a091aaf4c 100644 --- a/Framework/DataHandling/src/LoadILLDiffraction.cpp +++ b/Framework/DataHandling/src/LoadILLDiffraction.cpp @@ -11,7 +11,6 @@ #include "MantidAPI/RegisterFileLoader.h" #include "MantidAPI/Run.h" #include "MantidAPI/WorkspaceFactory.h" -#include "MantidDataHandling/H5Util.h" #include "MantidDataHandling/LoadHelper.h" #include "MantidDataObjects/ScanningWorkspaceBuilder.h" #include "MantidGeometry/Instrument/ComponentHelper.h" @@ -22,6 +21,7 @@ #include "MantidKernel/ListValidator.h" #include "MantidKernel/PropertyWithValue.h" #include "MantidKernel/TimeSeriesProperty.h" +#include "MantidNexus/H5Util.h" #include #include diff --git a/Framework/DataHandling/src/LoadISISNexus2.cpp b/Framework/DataHandling/src/LoadISISNexus2.cpp index f813dddb6fee..02e1d1e8c224 100644 --- a/Framework/DataHandling/src/LoadISISNexus2.cpp +++ b/Framework/DataHandling/src/LoadISISNexus2.cpp @@ -16,6 +16,7 @@ #include "MantidAPI/Axis.h" #include "MantidAPI/FileProperty.h" #include "MantidAPI/RegisterFileLoader.h" +#include "MantidAPI/Sample.h" #include "MantidAPI/WorkspaceFactory.h" #include "MantidGeometry/Instrument.h" #include "MantidGeometry/Instrument/Detector.h" @@ -604,7 +605,7 @@ below have to be processed rather then spectra list intervals **/ void LoadISISNexus2::buildSpectraInd2SpectraNumMap(bool range_supplied, bool hasSpectraList, - DataBlockComposite &dataBlockComposite) { + const DataBlockComposite &dataBlockComposite) { if (range_supplied || hasSpectraList || true) { auto generator = dataBlockComposite.getGenerator(); @@ -943,9 +944,10 @@ double LoadISISNexus2::dblSqrt(double in) { return sqrt(in); } * (contain different number of time channels) * */ -bool LoadISISNexus2::findSpectraDetRangeInFile(NXEntry &entry, std::vector &spectrum_index, int64_t ndets, - int64_t n_vms_compat_spectra, std::map &monitors, - bool excludeMonitors, bool separateMonitors) { +bool LoadISISNexus2::findSpectraDetRangeInFile(const NXEntry &entry, std::vector &spectrum_index, + int64_t ndets, int64_t n_vms_compat_spectra, + const std::map &monitors, bool excludeMonitors, + bool separateMonitors) { size_t nmons = monitors.size(); if (nmons > 0) { diff --git a/Framework/DataHandling/src/LoadInstrumentFromNexus.cpp b/Framework/DataHandling/src/LoadInstrumentFromNexus.cpp index 5a9f9caed81b..74086f06041e 100644 --- a/Framework/DataHandling/src/LoadInstrumentFromNexus.cpp +++ b/Framework/DataHandling/src/LoadInstrumentFromNexus.cpp @@ -9,6 +9,7 @@ //---------------------------------------------------------------------- #include "MantidDataHandling/LoadInstrumentFromNexus.h" #include "MantidAPI/FileProperty.h" +#include "MantidAPI/MatrixWorkspace.h" #include "MantidGeometry/Instrument.h" #include "MantidGeometry/Instrument/CompAssembly.h" #include "MantidGeometry/Instrument/Component.h" diff --git a/Framework/DataHandling/src/LoadMLZ.cpp b/Framework/DataHandling/src/LoadMLZ.cpp index 0085e68f8c95..c8c6cdd69a4d 100644 --- a/Framework/DataHandling/src/LoadMLZ.cpp +++ b/Framework/DataHandling/src/LoadMLZ.cpp @@ -10,6 +10,7 @@ #include "MantidAPI/MatrixWorkspace.h" #include "MantidAPI/Progress.h" #include "MantidAPI/RegisterFileLoader.h" +#include "MantidAPI/Sample.h" #include "MantidAPI/SpectrumInfo.h" #include "MantidAPI/WorkspaceFactory.h" #include "MantidDataHandling/LoadHelper.h" @@ -77,7 +78,7 @@ void LoadMLZ::exec() { loadInstrumentDetails(dataFirstEntry); loadTimeDetails(dataFirstEntry); - initWorkSpace(dataFirstEntry); + initWorkspace(dataFirstEntry); // load the instrument from the IDF runLoadInstrument(); @@ -169,7 +170,7 @@ void LoadMLZ::loadInstrumentDetails(const NeXus::NXEntry &firstEntry) { * @param entry :: The Nexus entry * */ -void LoadMLZ::initWorkSpace(NeXus::NXEntry &entry) //, const std::vector >&monitors) +void LoadMLZ::initWorkspace(const NeXus::NXEntry &entry) //, const std::vector >&monitors) { // read in the data NXData dataGroup = entry.openNXData("data"); @@ -352,7 +353,7 @@ void LoadMLZ::loadExperimentDetails(const NXEntry &entry) { * * @param entry :: The Nexus entry */ -void LoadMLZ::loadDataIntoTheWorkSpace(NeXus::NXEntry &entry) { +void LoadMLZ::loadDataIntoTheWorkSpace(const NeXus::NXEntry &entry) { // read in the data NXData dataGroup = entry.openNXData("data"); NXInt data = dataGroup.openIntData(); diff --git a/Framework/DataHandling/src/LoadMcStas.cpp b/Framework/DataHandling/src/LoadMcStas.cpp index c31a8478b54c..5d37b703e506 100644 --- a/Framework/DataHandling/src/LoadMcStas.cpp +++ b/Framework/DataHandling/src/LoadMcStas.cpp @@ -13,7 +13,6 @@ #include "MantidAPI/RegisterFileLoader.h" #include "MantidAPI/WorkspaceFactory.h" #include "MantidAPI/WorkspaceGroup.h" -#include "MantidDataHandling/H5Util.h" #include "MantidDataHandling/LoadEventNexus.h" #include "MantidGeometry/Instrument.h" #include "MantidGeometry/Instrument/InstrumentDefinitionParser.h" @@ -21,6 +20,7 @@ #include "MantidKernel/Strings.h" #include "MantidKernel/Unit.h" #include "MantidKernel/UnitFactory.h" +#include "MantidNexus/H5Util.h" #include #include @@ -29,6 +29,7 @@ namespace Mantid::DataHandling { using namespace Kernel; using namespace API; using namespace DataObjects; +using namespace NeXus; // Register the algorithm into the AlgorithmFactory DECLARE_NEXUS_HDF5_FILELOADER_ALGORITHM(LoadMcStas) diff --git a/Framework/DataHandling/src/LoadMuonNexus2.cpp b/Framework/DataHandling/src/LoadMuonNexus2.cpp index 2f8801ea3a4c..08b907f265a3 100644 --- a/Framework/DataHandling/src/LoadMuonNexus2.cpp +++ b/Framework/DataHandling/src/LoadMuonNexus2.cpp @@ -5,11 +5,13 @@ // Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS // SPDX - License - Identifier: GPL - 3.0 + #include "MantidDataHandling/LoadMuonNexus2.h" + #include "MantidAPI/Axis.h" #include "MantidAPI/FileProperty.h" #include "MantidAPI/Progress.h" #include "MantidAPI/RegisterFileLoader.h" #include "MantidAPI/Run.h" +#include "MantidAPI/Sample.h" #include "MantidAPI/WorkspaceFactory.h" #include "MantidAPI/WorkspaceGroup.h" #include "MantidDataHandling/LoadMuonNexus1.h" @@ -24,6 +26,7 @@ #include "MantidKernel/UnitFactory.h" #include "MantidKernel/UnitLabelTypes.h" #include "MantidNexus/NexusClasses.h" + #include #include // clang-format off @@ -145,7 +148,7 @@ void LoadMuonNexus2::doExec() { std::string detectorName; // Only the first NXdata found - for (auto &group : entry.groups()) { + for (const auto &group : entry.groups()) { std::string className = group.nxclass; if (className == "NXdata") { detectorName = group.nxname; @@ -483,7 +486,7 @@ std::map> LoadMuonNexus2::loadDetectorMapping(const Mantid::N NXEntry entry = root.openEntry(m_entry_name); const std::string detectorName = [&entry]() { // Only the first NXdata found - for (auto &group : entry.groups()) { + for (const auto &group : entry.groups()) { std::string className = group.nxclass; if (className == "NXdata") { return group.nxname; diff --git a/Framework/DataHandling/src/LoadNXcanSAS.cpp b/Framework/DataHandling/src/LoadNXcanSAS.cpp index 57e0b2fae305..a906aca33ddb 100644 --- a/Framework/DataHandling/src/LoadNXcanSAS.cpp +++ b/Framework/DataHandling/src/LoadNXcanSAS.cpp @@ -18,10 +18,10 @@ #include "MantidAPI/Workspace.h" #include "MantidAPI/WorkspaceFactory.h" #include "MantidAPI/WorkspaceUnitValidator.h" -#include "MantidDataHandling/H5Util.h" #include "MantidDataHandling/NXcanSASDefinitions.h" #include "MantidKernel/Logger.h" #include "MantidKernel/UnitFactory.h" +#include "MantidNexus/H5Util.h" #include #include @@ -105,7 +105,7 @@ Mantid::API::MatrixWorkspace_sptr createWorkspaceForHistogram(H5::DataSet &dataS void addLogFromGroupIfExists(H5::Group &sasGroup, std::string const &sasTerm, Run &run, std::string const &propertyName) { - auto value = Mantid::DataHandling::H5Util::readString(sasGroup, sasTerm); + auto value = Mantid::NeXus::H5Util::readString(sasGroup, sasTerm); if (!value.empty()) { run.addLogData(new PropertyWithValue(propertyName, value)); } @@ -123,7 +123,7 @@ void loadLogs(H5::Group &entry, const Mantid::API::MatrixWorkspace_sptr &workspa addLogFromGroupIfExists(entry, sasEntryRun, run, sasEntryRunInLogs); // Load Title (optional) - auto title = Mantid::DataHandling::H5Util::readString(entry, sasEntryTitle); + auto title = Mantid::NeXus::H5Util::readString(entry, sasEntryTitle); if (!title.empty()) { workspace->setTitle(title); } @@ -159,17 +159,15 @@ void loadSample(H5::Group &entry, const Mantid::API::MatrixWorkspace_sptr &works if (auto &&maybeApertureGroup = getAperture(entry)) { auto &&apertureGroup = *maybeApertureGroup; - auto &&height = - Mantid::DataHandling::H5Util::readArray1DCoerce(apertureGroup, sasInstrumentApertureGapHeight); + auto &&height = Mantid::NeXus::H5Util::readArray1DCoerce(apertureGroup, sasInstrumentApertureGapHeight); if (!height.empty()) { sample.setHeight(height.front()); } - auto &&width = - Mantid::DataHandling::H5Util::readArray1DCoerce(apertureGroup, sasInstrumentApertureGapWidth); + auto &&width = Mantid::NeXus::H5Util::readArray1DCoerce(apertureGroup, sasInstrumentApertureGapWidth); if (!width.empty()) { sample.setWidth(width.front()); } - auto &&geometry = Mantid::DataHandling::H5Util::readString(apertureGroup, sasInstrumentApertureShape); + auto &&geometry = Mantid::NeXus::H5Util::readString(apertureGroup, sasInstrumentApertureShape); boost::to_lower(geometry); if (geometry == "cylinder") { sample.setGeometryFlag(1); @@ -185,8 +183,7 @@ void loadSample(H5::Group &entry, const Mantid::API::MatrixWorkspace_sptr &works // Load thickness from the sample group and save to the Sample object. if (auto &&maybeSampleGroup = getSample(entry)) { auto &&sampleGroup = *maybeSampleGroup; - auto &&thickness = - Mantid::DataHandling::H5Util::readArray1DCoerce(sampleGroup, sasInstrumentSampleThickness); + auto &&thickness = Mantid::NeXus::H5Util::readArray1DCoerce(sampleGroup, sasInstrumentSampleThickness); sample.setThickness(thickness.front()); } } @@ -221,13 +218,13 @@ void loadInstrument(H5::Group &entry, const Mantid::API::MatrixWorkspace_sptr &w auto instrument = entry.openGroup(sasInstrumentGroupName); // Get instrument name - auto instrumentName = Mantid::DataHandling::H5Util::readString(instrument, sasInstrumentName); + auto instrumentName = Mantid::NeXus::H5Util::readString(instrument, sasInstrumentName); if (instrumentName.empty()) { return; } // Get IDF - auto idf = Mantid::DataHandling::H5Util::readString(instrument, sasInstrumentIDF); + auto idf = Mantid::NeXus::H5Util::readString(instrument, sasInstrumentIDF); idf = extractIdfFileOnCurrentSystem(idf); // Try to load the instrument. If it fails we will continue nevertheless. @@ -267,7 +264,7 @@ WorkspaceDimensionality getWorkspaceDimensionality(H5::Group &dataGroup) { std::string getUnit(const H5::DataSet &dataSet) { std::string unit; - Mantid::DataHandling::H5Util::readStringAttribute(dataSet, sasUnitAttr, unit); + Mantid::NeXus::H5Util::readStringAttribute(dataSet, sasUnitAttr, unit); return unit; } @@ -289,24 +286,23 @@ void loadData1D(H5::Group &dataGroup, const Mantid::API::MatrixWorkspace_sptr &w workspace->setDistribution(true); // Load the Q value - workspace->mutableX(0) = Mantid::DataHandling::H5Util::readArray1DCoerce(dataGroup, sasDataQ); + workspace->mutableX(0) = Mantid::NeXus::H5Util::readArray1DCoerce(dataGroup, sasDataQ); workspace->getAxis(0)->setUnit("MomentumTransfer"); // Load the I value + units - workspace->mutableY(0) = Mantid::DataHandling::H5Util::readArray1DCoerce(dataGroup, sasDataI); + workspace->mutableY(0) = Mantid::NeXus::H5Util::readArray1DCoerce(dataGroup, sasDataI); auto iDataSet = dataGroup.openDataSet(sasDataI); auto yUnit = getUnit(iDataSet); workspace->setYUnit(yUnit); // Load the Idev value - workspace->mutableE(0) = Mantid::DataHandling::H5Util::readArray1DCoerce(dataGroup, sasDataIdev); + workspace->mutableE(0) = Mantid::NeXus::H5Util::readArray1DCoerce(dataGroup, sasDataIdev); // Load the Qdev value (optional) bool hasQResolution = hasQDev(dataGroup); if (hasQResolution) { - workspace->setPointStandardDeviations( - 0, Mantid::DataHandling::H5Util::readArray1DCoerce(dataGroup, sasDataQdev)); + workspace->setPointStandardDeviations(0, Mantid::NeXus::H5Util::readArray1DCoerce(dataGroup, sasDataQdev)); } } @@ -391,7 +387,7 @@ void loadData2D(H5::Group &dataGroup, const Mantid::API::MatrixWorkspace_sptr &w auto iExtractor = [](const Mantid::API::MatrixWorkspace_sptr &ws, size_t index) -> HistogramY & { return ws->mutableY(index); }; - auto iDataType = Mantid::DataHandling::H5Util::getType(); + auto iDataType = Mantid::NeXus::H5Util::getType(); read2DWorkspace(iDataSet, workspace, iExtractor, iDataType); auto yUnit = getUnit(iDataSet); workspace->setYUnit(yUnit); @@ -410,14 +406,14 @@ void loadData2D(H5::Group &dataGroup, const Mantid::API::MatrixWorkspace_sptr &w auto qxExtractor = [](const Mantid::API::MatrixWorkspace_sptr &ws, size_t index) -> HistogramX & { return ws->mutableX(index); }; - auto qxDataType = Mantid::DataHandling::H5Util::getType(); + auto qxDataType = Mantid::NeXus::H5Util::getType(); read2DWorkspace(qxDataSet, workspace, qxExtractor, qxDataType); workspace->getAxis(0)->setUnit("MomentumTransfer"); //----------------------------------------- // Load the Qy value auto qyDataSet = dataGroup.openDataSet(sasDataQy); - auto qyDataType = Mantid::DataHandling::H5Util::getType(); + auto qyDataType = Mantid::NeXus::H5Util::getType(); readQyInto2DWorkspace(qyDataSet, workspace, qyDataType); } @@ -471,19 +467,17 @@ bool hasTransmissionEntry(H5::Group &entry, const std::string &name) { void loadTransmissionData(H5::Group &transmission, const Mantid::API::MatrixWorkspace_sptr &workspace) { //----------------------------------------- // Load T - workspace->mutableY(0) = - Mantid::DataHandling::H5Util::readArray1DCoerce(transmission, sasTransmissionSpectrumT); + workspace->mutableY(0) = Mantid::NeXus::H5Util::readArray1DCoerce(transmission, sasTransmissionSpectrumT); //----------------------------------------- // Load Tdev - workspace->mutableE(0) = - Mantid::DataHandling::H5Util::readArray1DCoerce(transmission, sasTransmissionSpectrumTdev); + workspace->mutableE(0) = Mantid::NeXus::H5Util::readArray1DCoerce(transmission, sasTransmissionSpectrumTdev); //----------------------------------------- // Load Lambda. A bug in older versions (fixed in 6.0) allowed the // transmission lambda points to be saved as bin edges rather than points as // required by the NXcanSAS standard. We allow loading those files and convert // to points on the fly std::vector lambda; - Mantid::DataHandling::H5Util::readArray1DCoerce(transmission, sasTransmissionSpectrumLambda, lambda); + Mantid::NeXus::H5Util::readArray1DCoerce(transmission, sasTransmissionSpectrumLambda, lambda); if (lambda.size() == workspace->blocksize()) workspace->setPoints(0, std::move(lambda)); else if (lambda.size() == workspace->blocksize() + 1) diff --git a/Framework/DataHandling/src/LoadQKK.cpp b/Framework/DataHandling/src/LoadQKK.cpp index cb6f941214bb..9432cc176864 100644 --- a/Framework/DataHandling/src/LoadQKK.cpp +++ b/Framework/DataHandling/src/LoadQKK.cpp @@ -13,6 +13,7 @@ #include "MantidDataObjects/WorkspaceCreation.h" #include "MantidGeometry/Instrument.h" #include "MantidGeometry/Instrument/RectangularDetector.h" +#include "MantidGeometry/Objects/CSGObject.h" #include "MantidGeometry/Objects/ShapeFactory.h" #include "MantidIndexing/IndexInfo.h" #include "MantidKernel/UnitFactory.h" diff --git a/Framework/DataHandling/src/LoadSINQFocus.cpp b/Framework/DataHandling/src/LoadSINQFocus.cpp index e875a6286fbc..3a094daf3349 100644 --- a/Framework/DataHandling/src/LoadSINQFocus.cpp +++ b/Framework/DataHandling/src/LoadSINQFocus.cpp @@ -11,6 +11,7 @@ #include "MantidAPI/MatrixWorkspace.h" #include "MantidAPI/Progress.h" #include "MantidAPI/RegisterFileLoader.h" +#include "MantidAPI/Sample.h" #include "MantidAPI/WorkspaceFactory.h" #include "MantidDataHandling/LoadHelper.h" #include "MantidGeometry/Instrument.h" @@ -121,7 +122,7 @@ void LoadSINQFocus::setInstrumentName(const NeXus::NXEntry &entry) { m_instrumentName = m_instrumentName.substr(0, pos); } -void LoadSINQFocus::initWorkSpace(NeXus::NXEntry &entry) { +void LoadSINQFocus::initWorkSpace(const NeXus::NXEntry &entry) { // read in the data NXData dataGroup = entry.openNXData("merged"); diff --git a/Framework/DataHandling/src/SaveDiffCal.cpp b/Framework/DataHandling/src/SaveDiffCal.cpp index f21322906418..c0d739c3b6f7 100644 --- a/Framework/DataHandling/src/SaveDiffCal.cpp +++ b/Framework/DataHandling/src/SaveDiffCal.cpp @@ -7,9 +7,9 @@ #include "MantidDataHandling/SaveDiffCal.h" #include "MantidAPI/FileProperty.h" #include "MantidAPI/ITableWorkspace.h" -#include "MantidDataHandling/H5Util.h" #include "MantidDataObjects/GroupingWorkspace.h" #include "MantidDataObjects/MaskWorkspace.h" +#include "MantidNexus/H5Util.h" #include #include @@ -30,6 +30,7 @@ using Mantid::DataObjects::MaskWorkspace_const_sptr; using Mantid::Kernel::Direction; using namespace H5; +using namespace NeXus; // Register the algorithm into the AlgorithmFactory DECLARE_ALGORITHM(SaveDiffCal) diff --git a/Framework/DataHandling/src/SaveNXcanSAS.cpp b/Framework/DataHandling/src/SaveNXcanSAS.cpp index 246cc83a53fc..847d1260d2ab 100644 --- a/Framework/DataHandling/src/SaveNXcanSAS.cpp +++ b/Framework/DataHandling/src/SaveNXcanSAS.cpp @@ -13,7 +13,6 @@ #include "MantidAPI/Progress.h" #include "MantidAPI/Run.h" #include "MantidAPI/WorkspaceUnitValidator.h" -#include "MantidDataHandling/H5Util.h" #include "MantidDataHandling/NXcanSASDefinitions.h" #include "MantidDataObjects/Workspace2D.h" #include "MantidGeometry/Instrument.h" @@ -24,6 +23,7 @@ #include "MantidKernel/MDUnit.h" #include "MantidKernel/MantidVersion.h" #include "MantidKernel/VectorHelper.h" +#include "MantidNexus/H5Util.h" #include #include @@ -77,10 +77,10 @@ std::string makeCompliantName(const std::string &input, bool isStrict, template void writeArray1DWithStrAttributes(H5::Group &group, const std::string &dataSetName, const std::vector &values, const std::map &attributes) { - Mantid::DataHandling::H5Util::writeArray1D(group, dataSetName, values); + Mantid::NeXus::H5Util::writeArray1D(group, dataSetName, values); auto dataSet = group.openDataSet(dataSetName); for (const auto &attribute : attributes) { - Mantid::DataHandling::H5Util::writeStrAttribute(dataSet, attribute.first, attribute.second); + Mantid::NeXus::H5Util::writeStrAttribute(dataSet, attribute.first, attribute.second); } } @@ -95,7 +95,7 @@ H5::DSetCreatPropList setCompression2D(const hsize_t *chunkDims, const int defla template void write2DWorkspace(H5::Group &group, Mantid::API::MatrixWorkspace_sptr workspace, const std::string &dataSetName, Functor func, const std::map &attributes) { - using namespace Mantid::DataHandling::H5Util; + using namespace Mantid::NeXus::H5Util; // Set the dimension const size_t dimension0 = workspace->getNumberHistograms(); @@ -167,22 +167,21 @@ std::vector splitDetectorNames(std::string detectorNames) { H5::Group addSasEntry(H5::H5File &file, const Mantid::API::MatrixWorkspace_sptr &workspace, const std::string &suffix) { using namespace Mantid::DataHandling::NXcanSAS; const std::string sasEntryName = sasEntryGroupName + suffix; - auto sasEntry = - Mantid::DataHandling::H5Util::createGroupCanSAS(file, sasEntryName, nxEntryClassAttr, sasEntryClassAttr); + auto sasEntry = Mantid::NeXus::H5Util::createGroupCanSAS(file, sasEntryName, nxEntryClassAttr, sasEntryClassAttr); // Add version - Mantid::DataHandling::H5Util::writeStrAttribute(sasEntry, sasEntryVersionAttr, sasEntryVersionAttrValue); + Mantid::NeXus::H5Util::writeStrAttribute(sasEntry, sasEntryVersionAttr, sasEntryVersionAttrValue); // Add definition - Mantid::DataHandling::H5Util::write(sasEntry, sasEntryDefinition, sasEntryDefinitionFormat); + Mantid::NeXus::H5Util::write(sasEntry, sasEntryDefinition, sasEntryDefinitionFormat); // Add title auto workspaceTitle = workspace->getTitle(); - Mantid::DataHandling::H5Util::write(sasEntry, sasEntryTitle, workspaceTitle); + Mantid::NeXus::H5Util::write(sasEntry, sasEntryTitle, workspaceTitle); // Add run const auto runNumber = workspace->getRunNumber(); - Mantid::DataHandling::H5Util::write(sasEntry, sasEntryRun, std::to_string(runNumber)); + Mantid::NeXus::H5Util::write(sasEntry, sasEntryRun, std::to_string(runNumber)); return sasEntry; } @@ -219,11 +218,11 @@ void addDetectors(H5::Group &group, const Mantid::API::MatrixWorkspace_sptr &wor const auto distance = component->getDistance(*sample); std::map sddAttributes; sddAttributes.insert(std::make_pair(sasUnitAttr, sasInstrumentDetectorSddUnitAttrValue)); - auto detector = Mantid::DataHandling::H5Util::createGroupCanSAS( - group, sasDetectorName, nxInstrumentDetectorClassAttr, sasInstrumentDetectorClassAttr); - Mantid::DataHandling::H5Util::write(detector, sasInstrumentDetectorName, detectorName); - Mantid::DataHandling::H5Util::writeScalarDataSetWithStrAttributes(detector, sasInstrumentDetectorSdd, distance, - sddAttributes); + auto detector = Mantid::NeXus::H5Util::createGroupCanSAS(group, sasDetectorName, nxInstrumentDetectorClassAttr, + sasInstrumentDetectorClassAttr); + Mantid::NeXus::H5Util::write(detector, sasInstrumentDetectorName, detectorName); + Mantid::NeXus::H5Util::writeScalarDataSetWithStrAttributes(detector, sasInstrumentDetectorSdd, distance, + sddAttributes); } } } @@ -242,41 +241,41 @@ void addInstrument(H5::Group &group, const Mantid::API::MatrixWorkspace_sptr &wo const std::vector &detectorNames) { // Setup instrument const std::string sasInstrumentNameForGroup = sasInstrumentGroupName; - auto instrument = Mantid::DataHandling::H5Util::createGroupCanSAS(group, sasInstrumentNameForGroup, - nxInstrumentClassAttr, sasInstrumentClassAttr); + auto instrument = Mantid::NeXus::H5Util::createGroupCanSAS(group, sasInstrumentNameForGroup, nxInstrumentClassAttr, + sasInstrumentClassAttr); auto instrumentName = getInstrumentName(workspace); - Mantid::DataHandling::H5Util::write(instrument, sasInstrumentName, instrumentName); + Mantid::NeXus::H5Util::write(instrument, sasInstrumentName, instrumentName); // Setup the detector addDetectors(instrument, workspace, detectorNames); // Setup source const std::string sasSourceName = sasInstrumentSourceGroupName; - auto source = Mantid::DataHandling::H5Util::createGroupCanSAS(instrument, sasSourceName, nxInstrumentSourceClassAttr, - sasInstrumentSourceClassAttr); - Mantid::DataHandling::H5Util::write(source, sasInstrumentSourceRadiation, radiationSource); + auto source = Mantid::NeXus::H5Util::createGroupCanSAS(instrument, sasSourceName, nxInstrumentSourceClassAttr, + sasInstrumentSourceClassAttr); + Mantid::NeXus::H5Util::write(source, sasInstrumentSourceRadiation, radiationSource); // Setup Aperture const std::string sasApertureName = sasInstrumentApertureGroupName; - auto aperture = Mantid::DataHandling::H5Util::createGroupCanSAS( - instrument, sasApertureName, nxInstrumentApertureClassAttr, sasInstrumentApertureClassAttr); + auto aperture = Mantid::NeXus::H5Util::createGroupCanSAS(instrument, sasApertureName, nxInstrumentApertureClassAttr, + sasInstrumentApertureClassAttr); - Mantid::DataHandling::H5Util::write(aperture, sasInstrumentApertureShape, geometry); + Mantid::NeXus::H5Util::write(aperture, sasInstrumentApertureShape, geometry); std::map beamSizeAttrs; beamSizeAttrs.insert(std::make_pair(sasUnitAttr, sasBeamAndSampleSizeUnitAttrValue)); if (beamHeight != 0) { - Mantid::DataHandling::H5Util::writeScalarDataSetWithStrAttributes(aperture, sasInstrumentApertureGapHeight, - beamHeight, beamSizeAttrs); + Mantid::NeXus::H5Util::writeScalarDataSetWithStrAttributes(aperture, sasInstrumentApertureGapHeight, beamHeight, + beamSizeAttrs); } if (beamWidth != 0) { - Mantid::DataHandling::H5Util::writeScalarDataSetWithStrAttributes(aperture, sasInstrumentApertureGapWidth, - beamWidth, beamSizeAttrs); + Mantid::NeXus::H5Util::writeScalarDataSetWithStrAttributes(aperture, sasInstrumentApertureGapWidth, beamWidth, + beamSizeAttrs); } // Add IDF information auto idf = getIDF(workspace); - Mantid::DataHandling::H5Util::write(instrument, sasInstrumentIDF, idf); + Mantid::NeXus::H5Util::write(instrument, sasInstrumentIDF, idf); } //------- SASsample @@ -287,13 +286,13 @@ void addSample(H5::Group &group, const double &sampleThickness) { } std::string const sasSampleNameForGroup = sasInstrumentSampleGroupAttr; - auto sample = Mantid::DataHandling::H5Util::createGroupCanSAS( - group, sasSampleNameForGroup, nxInstrumentSampleClassAttr, sasInstrumentSampleClassAttr); + auto sample = Mantid::NeXus::H5Util::createGroupCanSAS(group, sasSampleNameForGroup, nxInstrumentSampleClassAttr, + sasInstrumentSampleClassAttr); std::map sampleThicknessAttrs; sampleThicknessAttrs.insert(std::make_pair(sasUnitAttr, sasBeamAndSampleSizeUnitAttrValue)); - Mantid::DataHandling::H5Util::writeScalarDataSetWithStrAttributes(sample, sasInstrumentSampleThickness, - sampleThickness, sampleThicknessAttrs); + Mantid::NeXus::H5Util::writeScalarDataSetWithStrAttributes(sample, sasInstrumentSampleThickness, sampleThickness, + sampleThicknessAttrs); } //------- SASprocess @@ -317,8 +316,8 @@ std::string getDate() { void addPropertyFromRunIfExists(Run const &run, std::string const &propertyName, H5::Group &sasGroup, std::string const &sasTerm) { if (run.hasProperty(propertyName)) { - auto property = run.getProperty(propertyName); - Mantid::DataHandling::H5Util::write(sasGroup, sasTerm, property->value()); + const auto *property = run.getProperty(propertyName); + Mantid::NeXus::H5Util::write(sasGroup, sasTerm, property->value()); } } @@ -331,19 +330,19 @@ void addPropertyFromRunIfExists(Run const &run, std::string const &propertyName, void addProcess(H5::Group &group, const Mantid::API::MatrixWorkspace_sptr &workspace) { // Setup process const std::string sasProcessNameForGroup = sasProcessGroupName; - auto process = Mantid::DataHandling::H5Util::createGroupCanSAS(group, sasProcessNameForGroup, nxProcessClassAttr, - sasProcessClassAttr); + auto process = + Mantid::NeXus::H5Util::createGroupCanSAS(group, sasProcessNameForGroup, nxProcessClassAttr, sasProcessClassAttr); // Add name - Mantid::DataHandling::H5Util::write(process, sasProcessName, sasProcessNameValue); + Mantid::NeXus::H5Util::write(process, sasProcessName, sasProcessNameValue); // Add creation date of the file auto date = getDate(); - Mantid::DataHandling::H5Util::write(process, sasProcessDate, date); + Mantid::NeXus::H5Util::write(process, sasProcessDate, date); // Add Mantid version const auto version = std::string(MantidVersion::version()); - Mantid::DataHandling::H5Util::write(process, sasProcessTermSvn, version); + Mantid::NeXus::H5Util::write(process, sasProcessTermSvn, version); // Add log values const auto run = workspace->run(); @@ -361,19 +360,19 @@ void addProcess(H5::Group &group, const Mantid::API::MatrixWorkspace_sptr &works const Mantid::API::MatrixWorkspace_sptr &canWorkspace) { // Setup process const std::string sasProcessNameForGroup = sasProcessGroupName; - auto process = Mantid::DataHandling::H5Util::createGroupCanSAS(group, sasProcessNameForGroup, nxProcessClassAttr, - sasProcessClassAttr); + auto process = + Mantid::NeXus::H5Util::createGroupCanSAS(group, sasProcessNameForGroup, nxProcessClassAttr, sasProcessClassAttr); // Add name - Mantid::DataHandling::H5Util::write(process, sasProcessName, sasProcessNameValue); + Mantid::NeXus::H5Util::write(process, sasProcessName, sasProcessNameValue); // Add creation date of the file auto date = getDate(); - Mantid::DataHandling::H5Util::write(process, sasProcessDate, date); + Mantid::NeXus::H5Util::write(process, sasProcessDate, date); // Add Mantid version const auto version = std::string(MantidVersion::version()); - Mantid::DataHandling::H5Util::write(process, sasProcessTermSvn, version); + Mantid::NeXus::H5Util::write(process, sasProcessTermSvn, version); const auto run = workspace->run(); addPropertyFromRunIfExists(run, sasProcessUserFileInLogs, process, sasProcessTermUserFile); @@ -381,7 +380,7 @@ void addProcess(H5::Group &group, const Mantid::API::MatrixWorkspace_sptr &works // Add can run number const auto canRun = canWorkspace->getRunNumber(); - Mantid::DataHandling::H5Util::write(process, sasProcessTermCan, std::to_string(canRun)); + Mantid::NeXus::H5Util::write(process, sasProcessTermCan, std::to_string(canRun)); } /** @@ -393,7 +392,7 @@ void addProcess(H5::Group &group, const Mantid::API::MatrixWorkspace_sptr &works void addProcessEntry(H5::Group &group, const std::string &entryName, const std::string &entryValue) { auto process = group.openGroup(sasProcessGroupName); // Populate process entry - Mantid::DataHandling::H5Util::write(process, entryName, entryValue); + Mantid::NeXus::H5Util::write(process, entryName, entryValue); } WorkspaceDimensionality getWorkspaceDimensionality(const Mantid::API::MatrixWorkspace_sptr &workspace) { @@ -409,7 +408,7 @@ WorkspaceDimensionality getWorkspaceDimensionality(const Mantid::API::MatrixWork //------- SASdata -std::string getIntensityUnitLabel(std::string intensityUnitLabel) { +std::string getIntensityUnitLabel(const std::string &intensityUnitLabel) { if (intensityUnitLabel == "I(q) (cm-1)") { return sasIntensity; } else { @@ -425,7 +424,7 @@ std::string getIntensityUnit(const Mantid::API::MatrixWorkspace_sptr &workspace) return iUnit; } -std::string getMomentumTransferLabel(std::string momentumTransferLabel) { +std::string getMomentumTransferLabel(const std::string &momentumTransferLabel) { if (momentumTransferLabel == "Angstrom^-1") { return sasMomentumTransfer; } else { @@ -440,15 +439,15 @@ std::string getUnitFromMDDimension(const Mantid::Geometry::IMDDimension_const_sp void addData1D(H5::Group &data, const Mantid::API::MatrixWorkspace_sptr &workspace) { // Add attributes for @signal, @I_axes, @Q_indices, - Mantid::DataHandling::H5Util::writeStrAttribute(data, sasSignal, sasDataI); - Mantid::DataHandling::H5Util::writeStrAttribute(data, sasDataIAxesAttr, sasDataQ); - Mantid::DataHandling::H5Util::writeStrAttribute(data, sasDataIUncertaintyAttr, sasDataIdev); - Mantid::DataHandling::H5Util::writeStrAttribute(data, sasDataIUncertaintiesAttr, sasDataIdev); - Mantid::DataHandling::H5Util::writeNumAttribute(data, sasDataQIndicesAttr, std::vector{0}); + Mantid::NeXus::H5Util::writeStrAttribute(data, sasSignal, sasDataI); + Mantid::NeXus::H5Util::writeStrAttribute(data, sasDataIAxesAttr, sasDataQ); + Mantid::NeXus::H5Util::writeStrAttribute(data, sasDataIUncertaintyAttr, sasDataIdev); + Mantid::NeXus::H5Util::writeStrAttribute(data, sasDataIUncertaintiesAttr, sasDataIdev); + Mantid::NeXus::H5Util::writeNumAttribute(data, sasDataQIndicesAttr, std::vector{0}); if (workspace->hasDx(0)) { - Mantid::DataHandling::H5Util::writeStrAttribute(data, sasDataQUncertaintyAttr, sasDataQdev); - Mantid::DataHandling::H5Util::writeStrAttribute(data, sasDataQUncertaintiesAttr, sasDataQdev); + Mantid::NeXus::H5Util::writeStrAttribute(data, sasDataQUncertaintyAttr, sasDataQdev); + Mantid::NeXus::H5Util::writeStrAttribute(data, sasDataQUncertaintiesAttr, sasDataQdev); } //----------------------------------------- @@ -598,13 +597,13 @@ void addData2D(H5::Group &data, const Mantid::API::MatrixWorkspace_sptr &workspa throw std::invalid_argument("SaveNXcanSAS: The provided 2D workspace needs to have 2 numeric axes."); } // Add attributes for @signal, @I_axes, @Q_indices, - Mantid::DataHandling::H5Util::writeStrAttribute(data, sasSignal, sasDataI); + Mantid::NeXus::H5Util::writeStrAttribute(data, sasSignal, sasDataI); const std::string sasDataIAxesAttr2D = sasDataQ + sasSeparator + sasDataQ; - Mantid::DataHandling::H5Util::writeStrAttribute(data, sasDataIAxesAttr, sasDataIAxesAttr2D); - Mantid::DataHandling::H5Util::writeStrAttribute(data, sasDataIUncertaintyAttr, sasDataIdev); - Mantid::DataHandling::H5Util::writeStrAttribute(data, sasDataIUncertaintiesAttr, sasDataIdev); + Mantid::NeXus::H5Util::writeStrAttribute(data, sasDataIAxesAttr, sasDataIAxesAttr2D); + Mantid::NeXus::H5Util::writeStrAttribute(data, sasDataIUncertaintyAttr, sasDataIdev); + Mantid::NeXus::H5Util::writeStrAttribute(data, sasDataIUncertaintiesAttr, sasDataIdev); // Write the Q Indices as Int Array - Mantid::DataHandling::H5Util::writeNumAttribute(data, sasDataQIndicesAttr, std::vector{0, 1}); + Mantid::NeXus::H5Util::writeNumAttribute(data, sasDataQIndicesAttr, std::vector{0, 1}); // Store the 2D Qx data + units std::map qxAttributes; @@ -644,7 +643,7 @@ void addData2D(H5::Group &data, const Mantid::API::MatrixWorkspace_sptr &workspa void addData(H5::Group &group, const Mantid::API::MatrixWorkspace_sptr &workspace) { const std::string sasDataName = sasDataGroupName; - auto data = Mantid::DataHandling::H5Util::createGroupCanSAS(group, sasDataName, nxDataClassAttr, sasDataClassAttr); + auto data = Mantid::NeXus::H5Util::createGroupCanSAS(group, sasDataName, nxDataClassAttr, sasDataClassAttr); auto workspaceDimensionality = getWorkspaceDimensionality(workspace); switch (workspaceDimensionality) { @@ -665,22 +664,21 @@ void addTransmission(H5::Group &group, const Mantid::API::MatrixWorkspace_const_ const std::string &transmissionName) { // Setup process const std::string sasTransmissionName = sasTransmissionSpectrumGroupName + "_" + transmissionName; - auto transmission = Mantid::DataHandling::H5Util::createGroupCanSAS( + auto transmission = Mantid::NeXus::H5Util::createGroupCanSAS( group, sasTransmissionName, nxTransmissionSpectrumClassAttr, sasTransmissionSpectrumClassAttr); // Add attributes for @signal, @T_axes, @T_indices, @T_uncertainty, // @T_uncertainties, @name, @timestamp - Mantid::DataHandling::H5Util::writeStrAttribute(transmission, sasSignal, sasTransmissionSpectrumT); - Mantid::DataHandling::H5Util::writeStrAttribute(transmission, sasTransmissionSpectrumTIndices, - sasTransmissionSpectrumT); - Mantid::DataHandling::H5Util::writeStrAttribute(transmission, sasTransmissionSpectrumTUncertainty, - sasTransmissionSpectrumTdev); - Mantid::DataHandling::H5Util::writeStrAttribute(transmission, sasTransmissionSpectrumTUncertainties, - sasTransmissionSpectrumTdev); - Mantid::DataHandling::H5Util::writeStrAttribute(transmission, sasTransmissionSpectrumNameAttr, transmissionName); + Mantid::NeXus::H5Util::writeStrAttribute(transmission, sasSignal, sasTransmissionSpectrumT); + Mantid::NeXus::H5Util::writeStrAttribute(transmission, sasTransmissionSpectrumTIndices, sasTransmissionSpectrumT); + Mantid::NeXus::H5Util::writeStrAttribute(transmission, sasTransmissionSpectrumTUncertainty, + sasTransmissionSpectrumTdev); + Mantid::NeXus::H5Util::writeStrAttribute(transmission, sasTransmissionSpectrumTUncertainties, + sasTransmissionSpectrumTdev); + Mantid::NeXus::H5Util::writeStrAttribute(transmission, sasTransmissionSpectrumNameAttr, transmissionName); auto date = getDate(); - Mantid::DataHandling::H5Util::writeStrAttribute(transmission, sasTransmissionSpectrumTimeStampAttr, date); + Mantid::NeXus::H5Util::writeStrAttribute(transmission, sasTransmissionSpectrumTimeStampAttr, date); //----------------------------------------- // Add T with units + uncertainty definition diff --git a/Framework/DataHandling/test/LoadISISNexusTest.h b/Framework/DataHandling/test/LoadISISNexusTest.h index e26da435d630..7786a8838779 100644 --- a/Framework/DataHandling/test/LoadISISNexusTest.h +++ b/Framework/DataHandling/test/LoadISISNexusTest.h @@ -10,6 +10,7 @@ #include "MantidAPI/AnalysisDataService.h" #include "MantidAPI/MatrixWorkspace.h" +#include "MantidAPI/Sample.h" #include "MantidAPI/SpectrumInfo.h" #include "MantidAPI/WorkspaceGroup.h" #include "MantidDataHandling/LoadISISNexus2.h" diff --git a/Framework/DataHandling/test/LoadMuonNexus2Test.h b/Framework/DataHandling/test/LoadMuonNexus2Test.h index b7cb15f41c88..b4b7d08cdc19 100644 --- a/Framework/DataHandling/test/LoadMuonNexus2Test.h +++ b/Framework/DataHandling/test/LoadMuonNexus2Test.h @@ -19,6 +19,7 @@ #include "MantidAPI/Axis.h" #include "MantidAPI/FrameworkManager.h" #include "MantidAPI/Run.h" +#include "MantidAPI/Sample.h" #include "MantidDataHandling/LoadMuonNexus2.h" #include "MantidKernel/ConfigService.h" #include "MantidKernel/TimeSeriesProperty.h" diff --git a/Framework/DataHandling/test/SaveNXcanSASTest.h b/Framework/DataHandling/test/SaveNXcanSASTest.h index 23017ed9f992..97253dfefe51 100644 --- a/Framework/DataHandling/test/SaveNXcanSASTest.h +++ b/Framework/DataHandling/test/SaveNXcanSASTest.h @@ -11,12 +11,12 @@ #include "MantidAPI/AlgorithmManager.h" #include "MantidAPI/Axis.h" #include "MantidAPI/MatrixWorkspace.h" -#include "MantidDataHandling/H5Util.h" #include "MantidDataHandling/NXcanSASDefinitions.h" #include "MantidDataHandling/SaveNXcanSAS.h" #include "MantidFrameworkTestHelpers/WorkspaceCreationHelper.h" #include "MantidGeometry/Instrument.h" #include "MantidKernel/UnitFactory.h" +#include "MantidNexus/H5Util.h" #include "NXcanSASTestHelper.h" @@ -434,29 +434,29 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // canSAS_class and NX_class attribute std::string classAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(entry, sasclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(entry, sasclass, classAttribute); TSM_ASSERT_EQUALS("Should be SASentry class", classAttribute, sasEntryClassAttr); - Mantid::DataHandling::H5Util::readStringAttribute(entry, nxclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(entry, nxclass, classAttribute); TSM_ASSERT_EQUALS("Should be NXentr class", classAttribute, nxEntryClassAttr); // Version attribute std::string versionAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(entry, sasEntryVersionAttr, versionAttribute); + Mantid::NeXus::H5Util::readStringAttribute(entry, sasEntryVersionAttr, versionAttribute); TSM_ASSERT_EQUALS("Version should be 1.0", versionAttribute, sasEntryVersionAttrValue); // Definition data set auto definitionDataSet = entry.openDataSet(sasEntryDefinition); - auto definitionValue = Mantid::DataHandling::H5Util::readString(definitionDataSet); + auto definitionValue = Mantid::NeXus::H5Util::readString(definitionDataSet); TSM_ASSERT_EQUALS("File definition should be NXcanSAS", definitionValue, sasEntryDefinitionFormat); // Run data set auto runDataSet = entry.openDataSet(sasEntryRun); - auto runValue = Mantid::DataHandling::H5Util::readString(runDataSet); + auto runValue = Mantid::NeXus::H5Util::readString(runDataSet); TSM_ASSERT_EQUALS("Run number should have been stored.", runValue, run); // Title data set auto titleDataSet = entry.openDataSet(sasEntryTitle); - auto titleValue = Mantid::DataHandling::H5Util::readString(titleDataSet); + auto titleValue = Mantid::NeXus::H5Util::readString(titleDataSet); TSM_ASSERT_EQUALS("The title should have been stored as the workspace name.", titleValue, title); } @@ -467,14 +467,14 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // canSAS_class and NX_class attribute std::string classAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(source, sasclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(source, sasclass, classAttribute); TSM_ASSERT_EQUALS("Should be SASsource class", classAttribute, sasInstrumentSourceClassAttr); - Mantid::DataHandling::H5Util::readStringAttribute(source, nxclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(source, nxclass, classAttribute); TSM_ASSERT_EQUALS("Should be NXsource class", classAttribute, nxInstrumentSourceClassAttr); // Radiation data set auto radiationDataSet = source.openDataSet(sasInstrumentSourceRadiation); - auto radiationValue = Mantid::DataHandling::H5Util::readString(radiationDataSet); + auto radiationValue = Mantid::NeXus::H5Util::readString(radiationDataSet); TSM_ASSERT_EQUALS("Radiation sources should match.", radiationValue, radiationSource); } @@ -486,26 +486,26 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // canSAS_class and NX_class attribute std::string classAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(aperture, sasclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(aperture, sasclass, classAttribute); TSM_ASSERT_EQUALS("Should be SASaperture class", classAttribute, sasInstrumentApertureClassAttr); - Mantid::DataHandling::H5Util::readStringAttribute(aperture, nxclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(aperture, nxclass, classAttribute); TSM_ASSERT_EQUALS("Should be NXaperture class", classAttribute, nxInstrumentApertureClassAttr); // beam_shape data set auto beamShapeDataSet = aperture.openDataSet(sasInstrumentApertureShape); - auto beamShapeValue = Mantid::DataHandling::H5Util::readString(beamShapeDataSet); + auto beamShapeValue = Mantid::NeXus::H5Util::readString(beamShapeDataSet); TSM_ASSERT_EQUALS("Beam Shapes should match.", beamShapeValue, beamShape); // beam_height data set auto beamHeightDataSet = aperture.openDataSet(sasInstrumentApertureGapHeight); std::vector beamHeightValue; - Mantid::DataHandling::H5Util::readArray1DCoerce(beamHeightDataSet, beamHeightValue); + Mantid::NeXus::H5Util::readArray1DCoerce(beamHeightDataSet, beamHeightValue); TSM_ASSERT_EQUALS("Beam height should match.", beamHeightValue[0], beamHeight); // beam_width data set auto beamWidthDataSet = aperture.openDataSet(sasInstrumentApertureGapWidth); std::vector beamWidthValue; - Mantid::DataHandling::H5Util::readArray1DCoerce(beamWidthDataSet, beamWidthValue); + Mantid::NeXus::H5Util::readArray1DCoerce(beamWidthDataSet, beamWidthValue); TSM_ASSERT_EQUALS("Beam width should match.", beamWidthValue[0], beamWidth); } @@ -520,19 +520,19 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // canSAS_class and NX_class attribute std::string classAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(detectorGroup, sasclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(detectorGroup, sasclass, classAttribute); TSM_ASSERT_EQUALS("Should be SASdetector class", classAttribute, sasInstrumentDetectorClassAttr); - Mantid::DataHandling::H5Util::readStringAttribute(detectorGroup, nxclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(detectorGroup, nxclass, classAttribute); TSM_ASSERT_EQUALS("Should be NXdetector class", classAttribute, nxInstrumentDetectorClassAttr); // Detector name data set auto name = detectorGroup.openDataSet(sasInstrumentDetectorName); - auto nameValue = Mantid::DataHandling::H5Util::readString(name); + auto nameValue = Mantid::NeXus::H5Util::readString(name); TSM_ASSERT_EQUALS("Radiation sources should match.", nameValue, detector); // SDD data set auto sdd = detectorGroup.openDataSet(sasInstrumentDetectorSdd); - TS_ASSERT_THROWS_NOTHING(Mantid::DataHandling::H5Util::readString(sdd)); + TS_ASSERT_THROWS_NOTHING(Mantid::NeXus::H5Util::readString(sdd)); } } @@ -546,7 +546,7 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { auto subGroup = instrument.openGroup(subGroupName); // canSAS_class and NX_class attribute std::string classAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(subGroup, sasclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(subGroup, sasclass, classAttribute); TSM_ASSERT("Should not be a detector", classAttribute != sasInstrumentDetectorClassAttr); } } @@ -560,19 +560,19 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // canSAS_class and NX_class attribute std::string classAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(instrument, sasclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(instrument, sasclass, classAttribute); TSM_ASSERT_EQUALS("Should be SASentry class", classAttribute, sasInstrumentClassAttr); - Mantid::DataHandling::H5Util::readStringAttribute(instrument, nxclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(instrument, nxclass, classAttribute); TSM_ASSERT_EQUALS("Should be NXentry class", classAttribute, nxInstrumentClassAttr); // Name data set auto instrumentNameDataSet = instrument.openDataSet(sasInstrumentName); - auto instrumentNameValue = Mantid::DataHandling::H5Util::readString(instrumentNameDataSet); + auto instrumentNameValue = Mantid::NeXus::H5Util::readString(instrumentNameDataSet); TSM_ASSERT_EQUALS("Name of the instrument should have been stored", instrumentNameValue, instrumentName); // IDF data set auto idfDataSet = instrument.openDataSet(sasInstrumentIDF); - auto idfValue = Mantid::DataHandling::H5Util::readString(idfDataSet); + auto idfValue = Mantid::NeXus::H5Util::readString(idfDataSet); TSM_ASSERT_EQUALS("The idf should have been stored", idfValue, idf); // Check source @@ -599,7 +599,7 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // sample thickness data set auto thicknessDataSet = sample.openDataSet(sasInstrumentSampleThickness); std::vector thicknessValue; - Mantid::DataHandling::H5Util::readArray1DCoerce(thicknessDataSet, thicknessValue); + Mantid::NeXus::H5Util::readArray1DCoerce(thicknessDataSet, thicknessValue); TSM_ASSERT_EQUALS("Sample thickness should match.", thicknessValue[0], thickness); } @@ -612,48 +612,48 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // canSAS_class and NX_class attribute std::string classAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(process, sasclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(process, sasclass, classAttribute); TSM_ASSERT_EQUALS("Should be SASprocess class", classAttribute, sasProcessClassAttr); - Mantid::DataHandling::H5Util::readStringAttribute(process, nxclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(process, nxclass, classAttribute); TSM_ASSERT_EQUALS("Should be NXprocess class", classAttribute, nxProcessClassAttr); // Date data set auto dateDataSet = process.openDataSet(sasProcessDate); - TS_ASSERT_THROWS_NOTHING(Mantid::DataHandling::H5Util::readString(dateDataSet)); + TS_ASSERT_THROWS_NOTHING(Mantid::NeXus::H5Util::readString(dateDataSet)); // SVN data set auto svnDataSet = process.openDataSet(sasProcessTermSvn); - TS_ASSERT_THROWS_NOTHING(Mantid::DataHandling::H5Util::readString(svnDataSet)); + TS_ASSERT_THROWS_NOTHING(Mantid::NeXus::H5Util::readString(svnDataSet)); // Name data set auto nameDataSet = process.openDataSet(sasProcessName); - auto nameValue = Mantid::DataHandling::H5Util::readString(nameDataSet); + auto nameValue = Mantid::NeXus::H5Util::readString(nameDataSet); TSM_ASSERT_EQUALS("Should have the Mantid NXcanSAS process name", nameValue, sasProcessNameValue); // User file auto userFileDataSet = process.openDataSet(sasProcessTermUserFile); - auto userFileValue = Mantid::DataHandling::H5Util::readString(userFileDataSet); + auto userFileValue = Mantid::NeXus::H5Util::readString(userFileDataSet); TSM_ASSERT_EQUALS("Should have the Mantid NXcanSAS process name", userFileValue, userFile); if (hasSampleRuns) { auto sampleDirectRunDataSet = process.openDataSet(sasProcessTermSampleDirect); - auto sampleDirectRunValue = Mantid::DataHandling::H5Util::readString(sampleDirectRunDataSet); + auto sampleDirectRunValue = Mantid::NeXus::H5Util::readString(sampleDirectRunDataSet); TSM_ASSERT_EQUALS("Should have correct sample direct run number", sampleDirectRunValue, sampleDirectRun); } if (hasCanRuns) { auto canDirectRunDataSet = process.openDataSet(sasProcessTermCanDirect); - auto canDirectRunValue = Mantid::DataHandling::H5Util::readString(canDirectRunDataSet); + auto canDirectRunValue = Mantid::NeXus::H5Util::readString(canDirectRunDataSet); TSM_ASSERT_EQUALS("Should have correct can direct run number", canDirectRunValue, canDirectRun); } if (hasBgSub) { auto scaledBgSubWorkspaceDataSet = process.openDataSet(sasProcessTermScaledBgSubWorkspace); - auto scaledBgSubWorkspaceValue = Mantid::DataHandling::H5Util::readString(scaledBgSubWorkspaceDataSet); + auto scaledBgSubWorkspaceValue = Mantid::NeXus::H5Util::readString(scaledBgSubWorkspaceDataSet); TSM_ASSERT_EQUALS("Should have correct scaled background subtraction workspace", scaledBgSubWorkspaceValue, scaledBgSubWorkspace); auto scaledBgSubScaleFactorDataSet = process.openDataSet(sasProcessTermScaledBgSubScaleFactor); - auto scaledBgSubScaleFactorValue = Mantid::DataHandling::H5Util::readString(scaledBgSubScaleFactorDataSet); + auto scaledBgSubScaleFactorValue = Mantid::NeXus::H5Util::readString(scaledBgSubScaleFactorDataSet); TSM_ASSERT_EQUALS("Should have correct scaled background subtraction scale factor", stod(scaledBgSubScaleFactorValue), scaledBgSubScaleFactor); } @@ -661,14 +661,14 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { void do_assert_1D_vector_with_same_entries(H5::DataSet &dataSet, double referenceValue, int size) { std::vector data; - Mantid::DataHandling::H5Util::readArray1DCoerce(dataSet, data); + Mantid::NeXus::H5Util::readArray1DCoerce(dataSet, data); TS_ASSERT_EQUALS(data.size(), static_cast(size)); TS_ASSERT_EQUALS(data[0], referenceValue); } void do_assert_1D_vector_with_increasing_entries(H5::DataSet &dataSet, double min, double increment, int size) { std::vector data; - Mantid::DataHandling::H5Util::readArray1DCoerce(dataSet, data); + Mantid::NeXus::H5Util::readArray1DCoerce(dataSet, data); TS_ASSERT_EQUALS(data.size(), static_cast(size)); for (size_t index = 0; index < data.size(); ++index) { TS_ASSERT_EQUALS(data[index], min); @@ -736,33 +736,33 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // canSAS_class and NX_class attribute std::string classAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasclass, classAttribute); TSM_ASSERT_EQUALS("Should be SASdata class", classAttribute, sasDataClassAttr); - Mantid::DataHandling::H5Util::readStringAttribute(data, nxclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, nxclass, classAttribute); TSM_ASSERT_EQUALS("Should be NXdata class", classAttribute, nxDataClassAttr); // I_axes attribute std::string intensityAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasDataIAxesAttr, intensityAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasDataIAxesAttr, intensityAttribute); TSM_ASSERT_EQUALS("Should be just Q", intensityAttribute, sasDataQ); // I_uncertainty attribute std::string errorAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasDataIUncertaintyAttr, errorAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasDataIUncertaintyAttr, errorAttribute); TSM_ASSERT_EQUALS("Should be just Idev", errorAttribute, sasDataIdev); // I_uncertainties attribute std::string errorAlternativeAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasDataIUncertaintiesAttr, errorAlternativeAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasDataIUncertaintiesAttr, errorAlternativeAttribute); TSM_ASSERT_EQUALS("Should be just Idev", errorAlternativeAttribute, sasDataIdev); // Q_indices attribute - auto qAttribute = Mantid::DataHandling::H5Util::readNumArrayAttributeCoerce(data, sasDataQIndicesAttr); + auto qAttribute = Mantid::NeXus::H5Util::readNumArrayAttributeCoerce(data, sasDataQIndicesAttr); TSM_ASSERT_EQUALS("Should be just 0", qAttribute, std::vector{0}); // Signal attribute std::string signalAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasSignal, signalAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasSignal, signalAttribute); TSM_ASSERT_EQUALS("Should be just I", signalAttribute, sasDataI); // I data set @@ -771,12 +771,12 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // I data set uncertainty attribute std::string uncertaintyIAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(intensityDataSet, sasUncertaintyAttr, uncertaintyIAttribute); + Mantid::NeXus::H5Util::readStringAttribute(intensityDataSet, sasUncertaintyAttr, uncertaintyIAttribute); TSM_ASSERT_EQUALS("Should be just Idev", uncertaintyIAttribute, sasDataIdev); // I data set uncertainties attribute std::string uncertaintiesIAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(intensityDataSet, sasUncertaintiesAttr, uncertaintiesIAttribute); + Mantid::NeXus::H5Util::readStringAttribute(intensityDataSet, sasUncertaintiesAttr, uncertaintiesIAttribute); TSM_ASSERT_EQUALS("Should be just Idev", uncertaintiesIAttribute, sasDataIdev); // I dev data set @@ -791,12 +791,12 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { if (hasDx) { // Q data set uncertainty attribute std::string uncertaintyQAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(qDataSet, sasUncertaintyAttr, uncertaintyQAttribute); + Mantid::NeXus::H5Util::readStringAttribute(qDataSet, sasUncertaintyAttr, uncertaintyQAttribute); TSM_ASSERT_EQUALS("Should be just Qdev", uncertaintyQAttribute, sasDataQdev); // Q data set uncertainties attribute std::string uncertaintiesQAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(qDataSet, sasUncertaintiesAttr, uncertaintiesQAttribute); + Mantid::NeXus::H5Util::readStringAttribute(qDataSet, sasUncertaintiesAttr, uncertaintiesQAttribute); TSM_ASSERT_EQUALS("Should be just Qdev", uncertaintiesQAttribute, sasDataQdev); // Q error data set @@ -805,12 +805,12 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // Q_uncertainty attribute on the SASdata group std::string qErrorAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasDataQUncertaintyAttr, qErrorAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasDataQUncertaintyAttr, qErrorAttribute); TSM_ASSERT_EQUALS("Should be just Qdev", qErrorAttribute, sasDataQdev); // Q_uncertainties attribute on the SASdata group std::string qErrorAlternativeAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasDataQUncertaintiesAttr, qErrorAlternativeAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasDataQUncertaintiesAttr, qErrorAlternativeAttribute); TSM_ASSERT_EQUALS("Should be just Qdev", qErrorAlternativeAttribute, sasDataQdev); } else { do_assert_that_Q_dev_information_is_not_present(data); @@ -823,34 +823,34 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // canSAS_class and NX_class attribute std::string classAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasclass, classAttribute); TSM_ASSERT_EQUALS("Should be SASdata class", classAttribute, sasDataClassAttr); - Mantid::DataHandling::H5Util::readStringAttribute(data, nxclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, nxclass, classAttribute); TSM_ASSERT_EQUALS("Should be NXdata class", classAttribute, nxDataClassAttr); // I_axes attribute std::string intensityAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasDataIAxesAttr, intensityAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasDataIAxesAttr, intensityAttribute); TSM_ASSERT_EQUALS("Should be just Q,Q", intensityAttribute, sasDataQ + sasSeparator + sasDataQ); // I_uncertainty attribute std::string errorAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasDataIUncertaintyAttr, errorAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasDataIUncertaintyAttr, errorAttribute); TSM_ASSERT_EQUALS("Should be just Idev", errorAttribute, sasDataIdev); // I_uncertainties attribute std::string errorAlternativeAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasDataIUncertaintiesAttr, errorAlternativeAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasDataIUncertaintiesAttr, errorAlternativeAttribute); TSM_ASSERT_EQUALS("Should be just Idev", errorAlternativeAttribute, sasDataIdev); // Q_indices attribute - auto qAttribute = Mantid::DataHandling::H5Util::readNumArrayAttributeCoerce(data, sasDataQIndicesAttr); + auto qAttribute = Mantid::NeXus::H5Util::readNumArrayAttributeCoerce(data, sasDataQIndicesAttr); std::vector expectedQIndices{0, 1}; TSM_ASSERT_EQUALS("Should be just 0,1", qAttribute, expectedQIndices); // Signal attribute std::string signalAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(data, sasSignal, signalAttribute); + Mantid::NeXus::H5Util::readStringAttribute(data, sasSignal, signalAttribute); TSM_ASSERT_EQUALS("Should be just I", signalAttribute, sasDataI); // Note: Acutal Values are being testin in LoadNXcanSAS to avoid redundant @@ -866,41 +866,41 @@ class SaveNXcanSASTest : public CxxTest::TestSuite { // canSAS_class and NX_class attribute std::string classAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(transmission, sasclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(transmission, sasclass, classAttribute); TSM_ASSERT_EQUALS("Should be SAStransmission_spectrum class", classAttribute, sasTransmissionSpectrumClassAttr); - Mantid::DataHandling::H5Util::readStringAttribute(transmission, nxclass, classAttribute); + Mantid::NeXus::H5Util::readStringAttribute(transmission, nxclass, classAttribute); TSM_ASSERT_EQUALS("Should be NXdata class", classAttribute, nxTransmissionSpectrumClassAttr); // Name attribute std::string nameAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(transmission, sasTransmissionSpectrumNameAttr, nameAttribute); + Mantid::NeXus::H5Util::readStringAttribute(transmission, sasTransmissionSpectrumNameAttr, nameAttribute); TSM_ASSERT_EQUALS("Should be either can or sample", nameAttribute, parameters.name); // T indices attribute std::string tIndicesAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(transmission, sasTransmissionSpectrumTIndices, tIndicesAttribute); + Mantid::NeXus::H5Util::readStringAttribute(transmission, sasTransmissionSpectrumTIndices, tIndicesAttribute); TSM_ASSERT_EQUALS("Should be T", tIndicesAttribute, sasTransmissionSpectrumT); // T uncertainty attribute std::string tUncertaintyIndicesAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(transmission, sasTransmissionSpectrumTUncertainty, - tUncertaintyIndicesAttribute); + Mantid::NeXus::H5Util::readStringAttribute(transmission, sasTransmissionSpectrumTUncertainty, + tUncertaintyIndicesAttribute); TSM_ASSERT_EQUALS("Should be Tdev", tUncertaintyIndicesAttribute, sasTransmissionSpectrumTdev); // T uncertainties attribute std::string tUncertaintiesIndicesAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(transmission, sasTransmissionSpectrumTUncertainties, - tUncertaintiesIndicesAttribute); + Mantid::NeXus::H5Util::readStringAttribute(transmission, sasTransmissionSpectrumTUncertainties, + tUncertaintiesIndicesAttribute); TSM_ASSERT_EQUALS("Should be Tdev", tUncertaintiesIndicesAttribute, sasTransmissionSpectrumTdev); // Signal attribute std::string signalAttribute; - Mantid::DataHandling::H5Util::readStringAttribute(transmission, sasSignal, signalAttribute); + Mantid::NeXus::H5Util::readStringAttribute(transmission, sasSignal, signalAttribute); TSM_ASSERT_EQUALS("Should be T", signalAttribute, sasTransmissionSpectrumT); // Timestamp attribute std::string transmissionAttribute; - TS_ASSERT_THROWS_NOTHING(Mantid::DataHandling::H5Util::readStringAttribute( + TS_ASSERT_THROWS_NOTHING(Mantid::NeXus::H5Util::readStringAttribute( transmission, sasTransmissionSpectrumTimeStampAttr, transmissionAttribute)); // T data set diff --git a/Framework/DataHandling/test/SaveNexusESSTest.h b/Framework/DataHandling/test/SaveNexusESSTest.h index f9629ddfc090..5627193e8691 100644 --- a/Framework/DataHandling/test/SaveNexusESSTest.h +++ b/Framework/DataHandling/test/SaveNexusESSTest.h @@ -12,7 +12,6 @@ #include "MantidAPI/AnalysisDataService.h" #include "MantidAPI/SpectrumInfo.h" #include "MantidAPI/WorkspaceGroup.h" -#include "MantidDataHandling/H5Util.h" #include "MantidDataHandling/LoadEmptyInstrument.h" #include "MantidDataHandling/LoadNexusProcessed2.h" #include "MantidDataHandling/SaveNexusESS.h" @@ -28,6 +27,7 @@ #include "MantidHistogramData/Histogram.h" #include "MantidIndexing/IndexInfo.h" #include "MantidKernel/Logger.h" +#include "MantidNexus/H5Util.h" #include "MantidNexusGeometry/NexusGeometryParser.h" #include "MantidNexusGeometry/NexusGeometrySave.h" #include @@ -303,7 +303,7 @@ class SaveNexusESSTest : public CxxTest::TestSuite { entryName << "/mantid_workspace_" << n; std::cout << "creating: " << entryName.str() << std::endl; H5::Group g = h5.createGroup(entryName.str()); - H5Util::writeStrAttribute(g, NX_CLASS, NX_ENTRY); + Mantid::NeXus::H5Util::writeStrAttribute(g, NX_CLASS, NX_ENTRY); } h5.close(); } @@ -352,7 +352,7 @@ class SaveNexusESSTest : public CxxTest::TestSuite { std::ostringstream entryName; entryName << "/mantid_workspace_" << n; H5::Group g = h5.createGroup(entryName.str()); - H5Util::writeStrAttribute(g, NX_CLASS, NX_ENTRY); + Mantid::NeXus::H5Util::writeStrAttribute(g, NX_CLASS, NX_ENTRY); h5.close(); } { @@ -463,9 +463,9 @@ class SaveNexusESSTest : public CxxTest::TestSuite { for (const auto &pathWithClass : pathsWithClasses) { const std::string &groupPath = pathWithClass.first; const std::string &className = pathWithClass.second; - TS_ASSERT(H5Util::groupExists(file, groupPath)); + TS_ASSERT(Mantid::NeXus::H5Util::groupExists(file, groupPath)); H5::Group g = file.openGroup(groupPath); - TS_ASSERT(H5Util::keyHasValue(g, NX_CLASS, className)); + TS_ASSERT(Mantid::NeXus::H5Util::keyHasValue(g, NX_CLASS, className)); } } }; diff --git a/Framework/Nexus/CMakeLists.txt b/Framework/Nexus/CMakeLists.txt index e3bb3b162fa0..a9a0481c844e 100644 --- a/Framework/Nexus/CMakeLists.txt +++ b/Framework/Nexus/CMakeLists.txt @@ -1,10 +1,10 @@ -set(SRC_FILES src/MuonNexusReader.cpp src/NexusClasses.cpp src/NexusFileIO.cpp) +set(SRC_FILES src/H5Util.cpp src/MuonNexusReader.cpp src/NexusClasses.cpp src/NexusFileIO.cpp) -set(INC_FILES inc/MantidNexus/MuonNexusReader.h inc/MantidNexus/NexusClasses.h inc/MantidNexus/NexusFileIO.h - inc/MantidNexus/NexusIOHelper.h +set(INC_FILES inc/MantidNexus/H5Util.h inc/MantidNexus/MuonNexusReader.h inc/MantidNexus/NexusClasses.h + inc/MantidNexus/NexusFileIO.h inc/MantidNexus/NexusIOHelper.h ) -set(TEST_FILES NexusIOHelperTest.h) +set(TEST_FILES H5UtilTest.h NexusIOHelperTest.h) if(COVERAGE) foreach(loop_var ${SRC_FILES} ${INC_FILES}) diff --git a/Framework/DataHandling/inc/MantidDataHandling/H5Util.h b/Framework/Nexus/inc/MantidNexus/H5Util.h similarity index 53% rename from Framework/DataHandling/inc/MantidDataHandling/H5Util.h rename to Framework/Nexus/inc/MantidNexus/H5Util.h index bf85e534a92f..b3eca15e624d 100644 --- a/Framework/DataHandling/inc/MantidDataHandling/H5Util.h +++ b/Framework/Nexus/inc/MantidNexus/H5Util.h @@ -6,7 +6,7 @@ // SPDX - License - Identifier: GPL - 3.0 + #pragma once -#include "MantidDataHandling/DllConfig.h" +#include "MantidNexus/DllConfig.h" #include #include @@ -24,13 +24,13 @@ class H5Object; } // namespace H5 namespace Mantid { -namespace DataHandling { +namespace NeXus { namespace H5Util { /** H5Util : TODO: DESCRIPTION */ /// Create a 1D data-space to hold data of length. -MANTID_DATAHANDLING_DLL H5::DataSpace getDataSpace(const size_t length); +MANTID_NEXUS_DLL H5::DataSpace getDataSpace(const size_t length); /// Create a 1D data-space that will hold the supplied vector. template H5::DataSpace getDataSpace(const std::vector &data); @@ -38,15 +38,15 @@ template H5::DataSpace getDataSpace(const std::vector &dat /// Convert a primitive type to the appropriate H5::DataType. template H5::DataType getType(); -MANTID_DATAHANDLING_DLL H5::Group createGroupNXS(H5::H5File &file, const std::string &name, const std::string &nxtype); +MANTID_NEXUS_DLL H5::Group createGroupNXS(H5::H5File &file, const std::string &name, const std::string &nxtype); -MANTID_DATAHANDLING_DLL H5::Group createGroupNXS(H5::Group &group, const std::string &name, const std::string &nxtype); +MANTID_NEXUS_DLL H5::Group createGroupNXS(H5::Group &group, const std::string &name, const std::string &nxtype); -MANTID_DATAHANDLING_DLL H5::Group createGroupCanSAS(H5::Group &group, const std::string &name, - const std::string &nxtype, const std::string &cstype); +MANTID_NEXUS_DLL H5::Group createGroupCanSAS(H5::Group &group, const std::string &name, const std::string &nxtype, + const std::string &cstype); -MANTID_DATAHANDLING_DLL H5::Group createGroupCanSAS(H5::H5File &file, const std::string &name, - const std::string &nxtype, const std::string &cstype); +MANTID_NEXUS_DLL H5::Group createGroupCanSAS(H5::H5File &file, const std::string &name, const std::string &nxtype, + const std::string &cstype); /** * Sets up the chunking and compression rate. @@ -54,18 +54,16 @@ MANTID_DATAHANDLING_DLL H5::Group createGroupCanSAS(H5::H5File &file, const std: * @param deflateLevel * @return The configured property list */ -MANTID_DATAHANDLING_DLL H5::DSetCreatPropList setCompressionAttributes(const std::size_t length, - const int deflateLevel = 6); +MANTID_NEXUS_DLL H5::DSetCreatPropList setCompressionAttributes(const std::size_t length, const int deflateLevel = 6); -MANTID_DATAHANDLING_DLL void writeStrAttribute(const H5::H5Object &object, const std::string &name, - const std::string &value); +MANTID_NEXUS_DLL void writeStrAttribute(const H5::H5Object &object, const std::string &name, const std::string &value); template void writeNumAttribute(const H5::H5Object &object, const std::string &name, const NumT &value); template void writeNumAttribute(const H5::H5Object &object, const std::string &name, const std::vector &value); -MANTID_DATAHANDLING_DLL void write(H5::Group &group, const std::string &name, const std::string &value); +MANTID_NEXUS_DLL void write(H5::Group &group, const std::string &name, const std::string &value); template void writeScalarDataSetWithStrAttributes(H5::Group &group, const std::string &name, const T &value, @@ -73,18 +71,18 @@ void writeScalarDataSetWithStrAttributes(H5::Group &group, const std::string &na template void writeArray1D(H5::Group &group, const std::string &name, const std::vector &values); -MANTID_DATAHANDLING_DLL std::string readString(H5::H5File &file, const std::string &path); +MANTID_NEXUS_DLL std::string readString(H5::H5File &file, const std::string &path); -MANTID_DATAHANDLING_DLL std::string readString(H5::Group &group, const std::string &name); +MANTID_NEXUS_DLL std::string readString(H5::Group &group, const std::string &name); -MANTID_DATAHANDLING_DLL std::string readString(const H5::DataSet &dataset); +MANTID_NEXUS_DLL std::string readString(const H5::DataSet &dataset); -MANTID_DATAHANDLING_DLL std::vector readStringVector(H5::Group &, const std::string &); +MANTID_NEXUS_DLL std::vector readStringVector(H5::Group &, const std::string &); -MANTID_DATAHANDLING_DLL bool hasAttribute(const H5::H5Object &object, const char *attributeName); +MANTID_NEXUS_DLL bool hasAttribute(const H5::H5Object &object, const char *attributeName); -MANTID_DATAHANDLING_DLL void readStringAttribute(const H5::H5Object &object, const std::string &attributeName, - std::string &output); +MANTID_NEXUS_DLL void readStringAttribute(const H5::H5Object &object, const std::string &attributeName, + std::string &output); template NumT readNumAttributeCoerce(const H5::H5Object &object, const std::string &attributeName); @@ -98,21 +96,21 @@ template std::vector readArray1DCoerce(const H5::Group &gr template void readArray1DCoerce(const H5::DataSet &dataset, std::vector &output); /// Test if a group already exists within an HDF5 file or parent group. -MANTID_DATAHANDLING_DLL bool groupExists(H5::H5Object &h5, const std::string &groupPath); +MANTID_NEXUS_DLL bool groupExists(H5::H5Object &h5, const std::string &groupPath); /// Test if an attribute is present and has a specific string value for an HDF5 group or dataset. -MANTID_DATAHANDLING_DLL bool keyHasValue(H5::H5Object &h5, const std::string &key, const std::string &value); +MANTID_NEXUS_DLL bool keyHasValue(H5::H5Object &h5, const std::string &key, const std::string &value); /// Copy a group and all of its contents, between the same or different HDF5 files or groups. -MANTID_DATAHANDLING_DLL void copyGroup(H5::H5Object &dest, const std::string &destGroupPath, H5::H5Object &src, - const std::string &srcGroupPath); +MANTID_NEXUS_DLL void copyGroup(H5::H5Object &dest, const std::string &destGroupPath, H5::H5Object &src, + const std::string &srcGroupPath); /** * Delete a target link for a group or dataset from a parent group. * If this is the last link to the target in the HDF5 graph, then it will be removed from the file. */ -MANTID_DATAHANDLING_DLL void deleteObjectLink(H5::H5Object &h5, const std::string &target); +MANTID_NEXUS_DLL void deleteObjectLink(H5::H5Object &h5, const std::string &target); } // namespace H5Util -} // namespace DataHandling +} // namespace NeXus } // namespace Mantid diff --git a/Framework/Nexus/inc/MantidNexus/MuonNexusReader.h b/Framework/Nexus/inc/MantidNexus/MuonNexusReader.h index 18ab08ba1c02..03a7cfbf87ab 100644 --- a/Framework/Nexus/inc/MantidNexus/MuonNexusReader.h +++ b/Framework/Nexus/inc/MantidNexus/MuonNexusReader.h @@ -6,9 +6,8 @@ // SPDX - License - Identifier: GPL - 3.0 + #pragma once -#include "MantidAPI/Algorithm.h" -#include "MantidDataObjects/Workspace2D.h" #include "MantidNexus/DllConfig.h" + #include #include #include @@ -75,7 +74,7 @@ class MANTID_NEXUS_DLL MuonNexusReader { void getTimeChannels(float *timebnds, const int &nbnds) const; ///< get time bin boundaries /// return sample name - std::string getSampleName() const { return m_nexusSampleName; }; + std::string const &getSampleName() const { return m_nexusSampleName; }; int numberOfLogs() const; ///< Number of NXlog sections read from file int getLogLength(const int i) const; ///< Lenght of i'th log std::string getLogName(const int i) const; ///< Name of i'th log @@ -90,11 +89,11 @@ class MANTID_NEXUS_DLL MuonNexusReader { int t_ntc1 = 0; ///< number of time channels in time regime 1 int t_nper = 0; ///< number of periods in file (=1 at present) // for nexus histogram data - std::vector m_correctedTimes; ///< temp store for corrected times - std::vector m_counts; ///< temp store of histogram data - std::vector m_detectorGroupings; ///< detector grouping info - int m_numDetectors = 0; ///< detector count - std::string getInstrumentName() const; ///< return instrument name + std::vector m_correctedTimes; ///< temp store for corrected times + std::vector m_counts; ///< temp store of histogram data + std::vector m_detectorGroupings; ///< detector grouping info + int m_numDetectors = 0; ///< detector count + std::string const &getInstrumentName() const; ///< return instrument name int m_numPeriodSequences = 0; std::string m_periodNames; std::string m_periodTypes; diff --git a/Framework/Nexus/inc/MantidNexus/NexusClasses.h b/Framework/Nexus/inc/MantidNexus/NexusClasses.h index 4a9e7b0bd526..a0adf547392c 100644 --- a/Framework/Nexus/inc/MantidNexus/NexusClasses.h +++ b/Framework/Nexus/inc/MantidNexus/NexusClasses.h @@ -6,11 +6,6 @@ // SPDX - License - Identifier: GPL - 3.0 + #pragma once -//---------------------------------------------------------------------- -// Includes -//---------------------------------------------------------------------- -#include "MantidAPI/Algorithm.h" -#include "MantidAPI/Sample.h" #include "MantidKernel/DateAndTimeHelpers.h" #include "MantidKernel/TimeSeriesProperty.h" #include "MantidNexus/DllConfig.h" @@ -22,9 +17,6 @@ #include #include #include -//---------------------------------------------------------------------- -// Forward declaration -//---------------------------------------------------------------------- namespace Mantid { namespace NeXus { @@ -104,7 +96,7 @@ class MANTID_NEXUS_DLL NXObject { // definition. // virtual bool isStandard()const = 0; /// Returns the absolute path to the object - std::string path() const { return m_path; } + std::string const &path() const { return m_path; } /// Returns the name of the object std::string name() const; /// Attributes diff --git a/Framework/Nexus/inc/MantidNexus/NexusFileIO.h b/Framework/Nexus/inc/MantidNexus/NexusFileIO.h index fc1d9300a378..7712ffaff1cf 100644 --- a/Framework/Nexus/inc/MantidNexus/NexusFileIO.h +++ b/Framework/Nexus/inc/MantidNexus/NexusFileIO.h @@ -5,13 +5,17 @@ // Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS // SPDX - License - Identifier: GPL - 3.0 + #pragma once +#include "MantidAPI/Column.h" #include "MantidAPI/ITableWorkspace_fwd.h" #include "MantidAPI/MatrixWorkspace_fwd.h" #include "MantidAPI/Progress.h" -#include "MantidDataObjects/EventWorkspace.h" -#include "MantidDataObjects/VectorColumn.h" +#include "MantidAPI/Run.h" +#include "MantidDataObjects/EventList.h" +#include "MantidDataObjects/EventWorkspace_fwd.h" #include "MantidKernel/TimeSeriesProperty.h" +#include "MantidKernel/cow_ptr.h" #include "MantidNexus/DllConfig.h" + #include #include #include @@ -205,10 +209,10 @@ bool NexusFileIO::writeNxValue(const std::string &name, const TYPE &value, const if (NXopendata(fileID, name.c_str()) == NX_ERROR) return false; for (unsigned int it = 0; it < attributes.size(); ++it) { - NXputattr(fileID, attributes[it].c_str(), (void *)avalues[it].c_str(), static_cast(avalues[it].size() + 1), - NX_CHAR); + NXputattr(fileID, attributes[it].c_str(), static_cast(avalues[it].c_str()), + static_cast(avalues[it].size() + 1), NX_CHAR); } - NXputdata(fileID, (void *)&value); + NXputdata(fileID, static_cast(&value)); NXclosedata(fileID); return true; } @@ -270,10 +274,10 @@ bool NexusFileIO::writeSingleValueNXLog(const std::string &name, const TYPE &val if (NXopendata(fileID, "value") == NX_ERROR) return false; for (unsigned int it = 0; it < attributes.size(); ++it) { - NXputattr(fileID, attributes[it].c_str(), (void *)avalues[it].c_str(), static_cast(avalues[it].size() + 1), - NX_CHAR); + NXputattr(fileID, attributes[it].c_str(), static_cast(avalues[it].c_str()), + static_cast(avalues[it].size() + 1), NX_CHAR); } - NXputdata(fileID, (void *)&value); + NXputdata(fileID, static_cast(&value)); NXclosedata(fileID); NXclosegroup(fileID); return true; diff --git a/Framework/DataHandling/src/H5Util.cpp b/Framework/Nexus/src/H5Util.cpp similarity index 66% rename from Framework/DataHandling/src/H5Util.cpp rename to Framework/Nexus/src/H5Util.cpp index e5ce9dcf30da..220d50d983c8 100644 --- a/Framework/DataHandling/src/H5Util.cpp +++ b/Framework/Nexus/src/H5Util.cpp @@ -4,7 +4,7 @@ // NScD Oak Ridge National Laboratory, European Spallation Source, // Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS // SPDX - License - Identifier: GPL - 3.0 + -#include "MantidDataHandling/H5Util.h" +#include "MantidNexus/H5Util.h" #include "MantidAPI/LogManager.h" #include "MantidKernel/System.h" @@ -17,7 +17,7 @@ using namespace H5; -namespace Mantid::DataHandling::H5Util { +namespace Mantid::NeXus::H5Util { namespace { /// static logger object @@ -33,17 +33,17 @@ const std::string CAN_SAS_ATTR_CLASS("canSAS_class"); template DataType getType() { throw DataTypeIException(); } -template <> MANTID_DATAHANDLING_DLL DataType getType() { return PredType::NATIVE_FLOAT; } +template <> MANTID_NEXUS_DLL DataType getType() { return PredType::NATIVE_FLOAT; } -template <> MANTID_DATAHANDLING_DLL DataType getType() { return PredType::NATIVE_DOUBLE; } +template <> MANTID_NEXUS_DLL DataType getType() { return PredType::NATIVE_DOUBLE; } -template <> MANTID_DATAHANDLING_DLL DataType getType() { return PredType::NATIVE_INT32; } +template <> MANTID_NEXUS_DLL DataType getType() { return PredType::NATIVE_INT32; } -template <> MANTID_DATAHANDLING_DLL DataType getType() { return PredType::NATIVE_UINT32; } +template <> MANTID_NEXUS_DLL DataType getType() { return PredType::NATIVE_UINT32; } -template <> MANTID_DATAHANDLING_DLL DataType getType() { return PredType::NATIVE_INT64; } +template <> MANTID_NEXUS_DLL DataType getType() { return PredType::NATIVE_INT64; } -template <> MANTID_DATAHANDLING_DLL DataType getType() { return PredType::NATIVE_UINT64; } +template <> MANTID_NEXUS_DLL DataType getType() { return PredType::NATIVE_UINT64; } DataSpace getDataSpace(const size_t length) { hsize_t dims[] = {length}; @@ -470,146 +470,136 @@ void deleteObjectLink(H5::H5Object &h5, const std::string &target) { // instantiations for writeNumAttribute // ------------------------------------------------------------------- -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const float &value); -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const double &value); -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const int32_t &value); -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const uint32_t &value); -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const int64_t &value); -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const uint64_t &value); - -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const std::vector &value); -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const std::vector &value); -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const std::vector &value); -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const std::vector &value); -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const std::vector &value); -template MANTID_DATAHANDLING_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, - const std::vector &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const float &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const double &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const int32_t &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const uint32_t &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const int64_t &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const uint64_t &value); + +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const std::vector &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const std::vector &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const std::vector &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const std::vector &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const std::vector &value); +template MANTID_NEXUS_DLL void writeNumAttribute(const H5::H5Object &object, const std::string &name, + const std::vector &value); // ------------------------------------------------------------------- // instantiations for readNumAttributeCoerce // ------------------------------------------------------------------- -template MANTID_DATAHANDLING_DLL float readNumAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); -template MANTID_DATAHANDLING_DLL double readNumAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); -template MANTID_DATAHANDLING_DLL int32_t readNumAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); -template MANTID_DATAHANDLING_DLL uint32_t readNumAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); -template MANTID_DATAHANDLING_DLL int64_t readNumAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); -template MANTID_DATAHANDLING_DLL uint64_t readNumAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); +template MANTID_NEXUS_DLL float readNumAttributeCoerce(const H5::H5Object &object, const std::string &attributeName); +template MANTID_NEXUS_DLL double readNumAttributeCoerce(const H5::H5Object &object, const std::string &attributeName); +template MANTID_NEXUS_DLL int32_t readNumAttributeCoerce(const H5::H5Object &object, const std::string &attributeName); +template MANTID_NEXUS_DLL uint32_t readNumAttributeCoerce(const H5::H5Object &object, const std::string &attributeName); +template MANTID_NEXUS_DLL int64_t readNumAttributeCoerce(const H5::H5Object &object, const std::string &attributeName); +template MANTID_NEXUS_DLL uint64_t readNumAttributeCoerce(const H5::H5Object &object, const std::string &attributeName); // ------------------------------------------------------------------- // instantiations for readNumArrayAttributeCoerce // ------------------------------------------------------------------- -template MANTID_DATAHANDLING_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); -template MANTID_DATAHANDLING_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); -template MANTID_DATAHANDLING_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); -template MANTID_DATAHANDLING_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); -template MANTID_DATAHANDLING_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); -template MANTID_DATAHANDLING_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, - const std::string &attributeName); +template MANTID_NEXUS_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, + const std::string &attributeName); +template MANTID_NEXUS_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, + const std::string &attributeName); +template MANTID_NEXUS_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, + const std::string &attributeName); +template MANTID_NEXUS_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, + const std::string &attributeName); +template MANTID_NEXUS_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, + const std::string &attributeName); +template MANTID_NEXUS_DLL std::vector readNumArrayAttributeCoerce(const H5::H5Object &object, + const std::string &attributeName); // ------------------------------------------------------------------- // instantiations for writeArray1D // ------------------------------------------------------------------- -template MANTID_DATAHANDLING_DLL void writeArray1D(H5::Group &group, const std::string &name, - const std::vector &values); -template MANTID_DATAHANDLING_DLL void writeArray1D(H5::Group &group, const std::string &name, - const std::vector &values); -template MANTID_DATAHANDLING_DLL void writeArray1D(H5::Group &group, const std::string &name, - const std::vector &values); -template MANTID_DATAHANDLING_DLL void writeArray1D(H5::Group &group, const std::string &name, - const std::vector &values); -template MANTID_DATAHANDLING_DLL void writeArray1D(H5::Group &group, const std::string &name, - const std::vector &values); -template MANTID_DATAHANDLING_DLL void writeArray1D(H5::Group &group, const std::string &name, - const std::vector &values); +template MANTID_NEXUS_DLL void writeArray1D(H5::Group &group, const std::string &name, + const std::vector &values); +template MANTID_NEXUS_DLL void writeArray1D(H5::Group &group, const std::string &name, + const std::vector &values); +template MANTID_NEXUS_DLL void writeArray1D(H5::Group &group, const std::string &name, + const std::vector &values); +template MANTID_NEXUS_DLL void writeArray1D(H5::Group &group, const std::string &name, + const std::vector &values); +template MANTID_NEXUS_DLL void writeArray1D(H5::Group &group, const std::string &name, + const std::vector &values); +template MANTID_NEXUS_DLL void writeArray1D(H5::Group &group, const std::string &name, + const std::vector &values); // ------------------------------------------------------------------- // Instantiations for writeScalarWithStrAttributes // ------------------------------------------------------------------- -template MANTID_DATAHANDLING_DLL void +template MANTID_NEXUS_DLL void writeScalarDataSetWithStrAttributes(H5::Group &group, const std::string &name, const std::string &value, const std::map &attributes); -template MANTID_DATAHANDLING_DLL void +template MANTID_NEXUS_DLL void writeScalarDataSetWithStrAttributes(H5::Group &group, const std::string &name, const float &value, const std::map &attributes); -template MANTID_DATAHANDLING_DLL void +template MANTID_NEXUS_DLL void writeScalarDataSetWithStrAttributes(H5::Group &group, const std::string &name, const double &value, const std::map &attributes); -template MANTID_DATAHANDLING_DLL void +template MANTID_NEXUS_DLL void writeScalarDataSetWithStrAttributes(H5::Group &group, const std::string &name, const int32_t &value, const std::map &attributes); -template MANTID_DATAHANDLING_DLL void +template MANTID_NEXUS_DLL void writeScalarDataSetWithStrAttributes(H5::Group &group, const std::string &name, const uint32_t &value, const std::map &attributes); -template MANTID_DATAHANDLING_DLL void +template MANTID_NEXUS_DLL void writeScalarDataSetWithStrAttributes(H5::Group &group, const std::string &name, const int64_t &value, const std::map &attributes); -template MANTID_DATAHANDLING_DLL void +template MANTID_NEXUS_DLL void writeScalarDataSetWithStrAttributes(H5::Group &group, const std::string &name, const uint64_t &value, const std::map &attributes); // ------------------------------------------------------------------- // instantiations for getDataSpace // ------------------------------------------------------------------- -template MANTID_DATAHANDLING_DLL DataSpace getDataSpace(const std::vector &data); -template MANTID_DATAHANDLING_DLL DataSpace getDataSpace(const std::vector &data); -template MANTID_DATAHANDLING_DLL DataSpace getDataSpace(const std::vector &data); -template MANTID_DATAHANDLING_DLL DataSpace getDataSpace(const std::vector &data); -template MANTID_DATAHANDLING_DLL DataSpace getDataSpace(const std::vector &data); -template MANTID_DATAHANDLING_DLL DataSpace getDataSpace(const std::vector &data); +template MANTID_NEXUS_DLL DataSpace getDataSpace(const std::vector &data); +template MANTID_NEXUS_DLL DataSpace getDataSpace(const std::vector &data); +template MANTID_NEXUS_DLL DataSpace getDataSpace(const std::vector &data); +template MANTID_NEXUS_DLL DataSpace getDataSpace(const std::vector &data); +template MANTID_NEXUS_DLL DataSpace getDataSpace(const std::vector &data); +template MANTID_NEXUS_DLL DataSpace getDataSpace(const std::vector &data); // ------------------------------------------------------------------- // instantiations for readArray1DCoerce // ------------------------------------------------------------------- -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, - std::vector &output); -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, - std::vector &output); -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, - std::vector &output); -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, - std::vector &output); -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, - std::vector &output); -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, - std::vector &output); - -template MANTID_DATAHANDLING_DLL std::vector readArray1DCoerce(const H5::Group &group, const std::string &name); -template MANTID_DATAHANDLING_DLL std::vector readArray1DCoerce(const H5::Group &group, const std::string &name); -template MANTID_DATAHANDLING_DLL std::vector readArray1DCoerce(const H5::Group &group, - const std::string &name); -template MANTID_DATAHANDLING_DLL std::vector readArray1DCoerce(const H5::Group &group, - const std::string &name); -template MANTID_DATAHANDLING_DLL std::vector readArray1DCoerce(const H5::Group &group, - const std::string &name); -template MANTID_DATAHANDLING_DLL std::vector readArray1DCoerce(const H5::Group &group, - const std::string &name); - -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); -template MANTID_DATAHANDLING_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); -} // namespace Mantid::DataHandling::H5Util +template MANTID_NEXUS_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, + std::vector &output); +template MANTID_NEXUS_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, + std::vector &output); +template MANTID_NEXUS_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, + std::vector &output); +template MANTID_NEXUS_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, + std::vector &output); +template MANTID_NEXUS_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, + std::vector &output); +template MANTID_NEXUS_DLL void readArray1DCoerce(const H5::Group &group, const std::string &name, + std::vector &output); + +template MANTID_NEXUS_DLL std::vector readArray1DCoerce(const H5::Group &group, const std::string &name); +template MANTID_NEXUS_DLL std::vector readArray1DCoerce(const H5::Group &group, const std::string &name); +template MANTID_NEXUS_DLL std::vector readArray1DCoerce(const H5::Group &group, const std::string &name); +template MANTID_NEXUS_DLL std::vector readArray1DCoerce(const H5::Group &group, const std::string &name); +template MANTID_NEXUS_DLL std::vector readArray1DCoerce(const H5::Group &group, const std::string &name); +template MANTID_NEXUS_DLL std::vector readArray1DCoerce(const H5::Group &group, const std::string &name); + +template MANTID_NEXUS_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); +template MANTID_NEXUS_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); +template MANTID_NEXUS_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); +template MANTID_NEXUS_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); +template MANTID_NEXUS_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); +template MANTID_NEXUS_DLL void readArray1DCoerce(const DataSet &dataset, std::vector &output); +} // namespace Mantid::NeXus::H5Util diff --git a/Framework/Nexus/src/MuonNexusReader.cpp b/Framework/Nexus/src/MuonNexusReader.cpp index 48de8b369128..c2e7051b5417 100644 --- a/Framework/Nexus/src/MuonNexusReader.cpp +++ b/Framework/Nexus/src/MuonNexusReader.cpp @@ -5,6 +5,7 @@ // Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS // SPDX - License - Identifier: GPL - 3.0 + #include "MantidNexus/MuonNexusReader.h" +#include "MantidKernel/Logger.h" #include "MantidKernel/System.h" #include #include @@ -221,7 +222,7 @@ void MuonNexusReader::getTimeChannels(float *timebnds, const int &nbnds) const { timebnds[nbnds - 1] = timebnds[nbnds - 2] + float(2.0) * binHalfWidth; } -string MuonNexusReader::getInstrumentName() const { return (m_nexusInstrumentName); } +std::string const &MuonNexusReader::getInstrumentName() const { return m_nexusInstrumentName; } // NeXus Muon file reader for NXlog data. // Read the given Nexus file into temp storage. @@ -245,7 +246,7 @@ void MuonNexusReader::readLogData(const string &filename) { // memory // Also get the start_time string needed to change these times into ISO times std::map entries = handle.getEntries(); - for (auto &entrie : entries) { + for (const auto &entrie : entries) { string nxname = entrie.first; string nxclass = entrie.second; diff --git a/Framework/Nexus/src/NexusClasses.cpp b/Framework/Nexus/src/NexusClasses.cpp index 99c0d86e4ecd..1e1625e8b419 100644 --- a/Framework/Nexus/src/NexusClasses.cpp +++ b/Framework/Nexus/src/NexusClasses.cpp @@ -4,10 +4,11 @@ // NScD Oak Ridge National Laboratory, European Spallation Source, // Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS // SPDX - License - Identifier: GPL - 3.0 + -//---------------------------------------------------------------------- -// Includes -//---------------------------------------------------------------------- #include "MantidNexus/NexusClasses.h" + +#include "MantidKernel/Exception.h" +#include "MantidKernel/PropertyWithValue.h" + #include #include diff --git a/Framework/Nexus/src/NexusFileIO.cpp b/Framework/Nexus/src/NexusFileIO.cpp index ca953fb8a56e..7e3ef0b74886 100644 --- a/Framework/Nexus/src/NexusFileIO.cpp +++ b/Framework/Nexus/src/NexusFileIO.cpp @@ -16,6 +16,7 @@ #define NAME_MAX 260 #endif /* _WIN32 */ #include "MantidAPI/NumericAxis.h" +#include "MantidDataObjects/EventWorkspace.h" #include "MantidDataObjects/PeaksWorkspace.h" #include "MantidDataObjects/RebinnedOutput.h" #include "MantidDataObjects/TableWorkspace.h" diff --git a/Framework/Nexus/test/CMakeLists.txt b/Framework/Nexus/test/CMakeLists.txt index d79dcbb40f6e..9b99e1dfc2ac 100644 --- a/Framework/Nexus/test/CMakeLists.txt +++ b/Framework/Nexus/test/CMakeLists.txt @@ -4,6 +4,7 @@ if(CXXTEST_FOUND) cxxtest_add_test(NexusTest ${TEST_FILES}) target_link_libraries(NexusTest PRIVATE Mantid::API Mantid::Nexus gmock) + add_framework_test_helpers(NexusTest) add_dependencies(FrameworkTests NexusTest) add_dependencies(NexusTest StandardTestData) # Add to the 'FrameworkTests' group in VS diff --git a/Framework/DataHandling/test/H5UtilTest.h b/Framework/Nexus/test/H5UtilTest.h similarity index 99% rename from Framework/DataHandling/test/H5UtilTest.h rename to Framework/Nexus/test/H5UtilTest.h index 83f254d2d3ec..35252126d38d 100644 --- a/Framework/DataHandling/test/H5UtilTest.h +++ b/Framework/Nexus/test/H5UtilTest.h @@ -8,9 +8,9 @@ #include -#include "MantidDataHandling/H5Util.h" #include "MantidFrameworkTestHelpers/FileResource.h" #include "MantidKernel/System.h" +#include "MantidNexus/H5Util.h" #include #include @@ -18,7 +18,7 @@ #include using namespace H5; -using namespace Mantid::DataHandling; +using namespace Mantid::NeXus; class H5UtilTest : public CxxTest::TestSuite { public: diff --git a/Framework/NexusGeometry/test/NexusGeometryParserTest.h b/Framework/NexusGeometry/test/NexusGeometryParserTest.h index 42d18d759b01..9ebcc72c8156 100644 --- a/Framework/NexusGeometry/test/NexusGeometryParserTest.h +++ b/Framework/NexusGeometry/test/NexusGeometryParserTest.h @@ -8,7 +8,6 @@ #include -#include "MantidDataHandling/H5Util.h" #include "MantidFrameworkTestHelpers/FileResource.h" #include "MantidGeometry/Instrument.h" #include "MantidGeometry/Instrument/ComponentInfo.h" @@ -19,6 +18,7 @@ #include "MantidGeometry/Surfaces/Cylinder.h" #include "MantidKernel/ConfigService.h" #include "MantidKernel/EigenConversionHelpers.h" +#include "MantidNexus/H5Util.h" #include "MantidNexusGeometry/NexusGeometryDefinitions.h" #include "MantidNexusGeometry/NexusGeometryParser.h" @@ -31,7 +31,7 @@ using namespace Mantid; using namespace NexusGeometry; -using namespace DataHandling; +using namespace Mantid::NeXus; namespace { std::unique_ptr extractDetectorInfo(const Mantid::Geometry::Instrument &instrument) { diff --git a/buildconfig/CMake/CppCheck_Suppressions.txt.in b/buildconfig/CMake/CppCheck_Suppressions.txt.in index 7d4767dc0e8d..45030e343866 100644 --- a/buildconfig/CMake/CppCheck_Suppressions.txt.in +++ b/buildconfig/CMake/CppCheck_Suppressions.txt.in @@ -562,7 +562,6 @@ missingOverride:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandlin constVariableReference:${CMAKE_SOURCE_DIR}/Framework/CurveFitting/src/MSVesuvioHelpers.cpp:369 constVariableReference:${CMAKE_SOURCE_DIR}/Framework/CurveFitting/src/MSVesuvioHelpers.cpp:370 missingOverride:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandling/ISISJournal.h:35 -returnByReference:${CMAKE_SOURCE_DIR}/Framework/Nexus/inc/MantidNexus/NexusClasses.h:107 constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/DataBlockComposite.cpp:383 missingOverride:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandling/CreatePolarizationEfficienciesBase.h:30 containerOutOfBounds:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/CreatePolarizationEfficiencies.cpp:119 @@ -606,7 +605,6 @@ uninitMemberVarPrivate:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidData passedByValue:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadGSS.cpp:449 constParameterReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadILLIndirect2.cpp:181 constParameterReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadILLIndirect2.cpp:254 -returnByReference:${CMAKE_SOURCE_DIR}/Framework/Nexus/inc/MantidNexus/MuonNexusReader.h:78 mismatchingContainerExpression:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadInstrument.cpp:148 constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadLog.cpp:448 knownConditionTrueFalse:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandling/LoadANSTOEventFile.h:132 @@ -634,19 +632,10 @@ unusedStructMember:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadRaw/vms_co variableScope:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadRaw/isisraw.cpp:474 constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadRaw/isisraw.cpp:906 uninitdata:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadRaw/isisraw.cpp:518 -constParameterReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadISISNexus2.cpp:607 -constParameterReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadISISNexus2.cpp:946 -constParameterReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadISISNexus2.cpp:947 -constParameterReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadMLZ.cpp:172 -constParameterReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadMLZ.cpp:355 uselessOverride:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandling/LoadPSIMuonBin.h:74 constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadMuonStrategy.cpp:119 stlIfStrFind:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadRKH.cpp:521 knownConditionTrueFalse:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadNexusMonitors2.cpp:452 -cstyleCast:${CMAKE_SOURCE_DIR}/Framework/Nexus/inc/MantidNexus/NexusFileIO.h:208 -cstyleCast:${CMAKE_SOURCE_DIR}/Framework/Nexus/inc/MantidNexus/NexusFileIO.h:211 -cstyleCast:${CMAKE_SOURCE_DIR}/Framework/Nexus/inc/MantidNexus/NexusFileIO.h:273 -cstyleCast:${CMAKE_SOURCE_DIR}/Framework/Nexus/inc/MantidNexus/NexusFileIO.h:276 uselessOverride:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandling/LoadNexusProcessed2.h:38 uselessOverride:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandling/LoadMuonNexus1.h:60 uselessOverride:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandling/LoadMuonNexus1.h:62 @@ -660,8 +649,6 @@ constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadMuonNe constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadMuonNexus1.cpp:551 constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadMuonNexus1.cpp:641 constParameterReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadMuonNexus1.cpp:661 -constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadMuonNexus2.cpp:148 -constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadMuonNexus2.cpp:486 constParameterReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadTBL.cpp:133 constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadPreNexus.cpp:244 returnByReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandling/LoadSpiceXML2DDet.h:30 @@ -681,8 +668,7 @@ constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadSpiceX constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadSpiceXML2DDet.cpp:897 passedByValue:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadSpiceAscii.cpp:330 constParameterPointer:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadSpice2D.cpp:613 -constParameterReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadSINQFocus.cpp:124 -uselessCallsSubstr:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadSINQFocus.cpp:121 +uselessCallsSubstr:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/LoadSINQFocus.cpp:122 constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/SaveCSV.cpp:107 constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/SaveCSV.cpp:139 constVariableReference:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/SaveCSV.cpp:155 @@ -720,9 +706,6 @@ constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/DataObjects/src/CoordTransfor constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/DataObjects/src/CoordTransformAffine.cpp:357 constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/DataObjects/src/CoordTransformAffine.cpp:368 missingOverride:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandling/SaveOpenGenieAscii.h:23 -passedByValue:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/SaveNXcanSAS.cpp:412 -passedByValue:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/SaveNXcanSAS.cpp:428 -constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/DataHandling/src/SaveNXcanSAS.cpp:320 uninitMemberVarPrivate:${CMAKE_SOURCE_DIR}/Framework/DataHandling/inc/MantidDataHandling/SaveReflectometryAscii.h:79 internalError:${CMAKE_SOURCE_DIR}/Framework/DataObjects/src/MDBoxSaveable.cpp:0 internalError:${CMAKE_SOURCE_DIR}/Framework/DataObjects/src/MDLeanEvent.cpp:0 @@ -891,11 +874,9 @@ constVariableReference:${CMAKE_SOURCE_DIR}/Framework/LiveData/src/ISIS/ISISHisto missingOverride:${CMAKE_SOURCE_DIR}/Framework/Muon/inc/MantidMuon/ApplyMuonDetectorGroupPairing.h:28 missingOverride:${CMAKE_SOURCE_DIR}/Framework/Muon/inc/MantidMuon/ApplyMuonDetectorGrouping.h:28 constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/PythonInterface/core/src/GlobalInterpreterLock.cpp:24 -returnByReference:${CMAKE_SOURCE_DIR}/Framework/Nexus/inc/MantidNexus/MuonNexusReader.h:97 cstyleCast:${CMAKE_SOURCE_DIR}/Framework/PythonInterface/core/src/NDArray.cpp:111 constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/PythonInterface/core/src/ReleaseGlobalInterpreterLock.cpp:17 constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/PythonInterface/core/src/UninstallTrace.cpp:16 -constVariableReference:${CMAKE_SOURCE_DIR}/Framework/Nexus/src/MuonNexusReader.cpp:248 constParameterPointer:${CMAKE_SOURCE_DIR}/Framework/PythonInterface/core/src/Converters/CloneToNDArray.cpp:123 constParameterReference:${CMAKE_SOURCE_DIR}/Framework/NexusGeometry/src/NexusShapeFactory.cpp:33 cstyleCast:${CMAKE_SOURCE_DIR}/Framework/PythonInterface/core/src/Converters/NDArrayToVector.cpp:126