83 void populateInstrumentParameters();
85 void setNumberOfDetectorGroups(
const size_t count)
const;
86 void setDetectorGrouping(
const size_t index,
const std::set<detid_t> &detIDs)
const;
89 const Sample &sample()
const;
94 const Run &run()
const;
103 double getLogAsSingleValue(
const std::string &log)
const;
106 int getRunNumber()
const;
110 double getEFixed(
const detid_t detID)
const;
112 double getEFixed(
const std::shared_ptr<const Geometry::IDetector> &detector =
113 std::shared_ptr<const Geometry::IDetector>{
nullptr})
const;
114 double getEFixedGivenEMode(
const std::shared_ptr<const Geometry::IDetector> &detector,
116 double getEFixedForIndirect(
const std::shared_ptr<const Geometry::IDetector> &detector,
117 const std::vector<std::string> ¶meterNames)
const;
119 void setEFixed(
const detid_t detID,
const double value);
122 void saveExperimentInfoNexus(Nexus::File *file,
bool saveLegacyInstrument =
true)
const;
124 void saveExperimentInfoNexus(Nexus::File *file,
bool saveInstrument,
bool saveSample,
bool saveLogs)
const;
126 void loadExperimentInfoNexus(std::string
const &nxFilename, Nexus::File *file, std::string ¶meterStr,
127 std::string
const &prefix);
130 void loadExperimentInfoNexus(
const std::string &nxFilename, Nexus::File *file, std::string ¶meterStr);
132 void loadInstrumentInfoNexus(
const std::string &nxFilename, Nexus::File *file, std::string ¶meterStr);
134 void loadInstrumentInfoNexus(
const std::string &nxFilename, Nexus::File *file);
136 void loadInstrumentParametersNexus(Nexus::File *file, std::string ¶meterStr);
140 void loadSampleAndLogInfoNexus(Nexus::File *file, std::string
const &prefix);
142 void loadSampleAndLogInfoNexus(Nexus::File *file);
144 void readParameterMap(
const std::string ¶meterStr);
147 std::string getWorkspaceStartDate()
const;
150 std::string getAvailableWorkspaceStartDate()
const;
152 std::string getAvailableWorkspaceEndDate()
const;
165 std::string getInstrumentName()
const;
167 void invalidateSpectrumDefinition(
const size_t index);
168 void updateSpectrumDefinitionIfNecessary(
const size_t index)
const;
171 size_t numberOfDetectorGroups()
const;
173 virtual void populateIfNotLoaded()
const;
175 void setSpectrumDefinitions(
Kernel::cow_ptr<std::vector<SpectrumDefinition>> spectrumDefinitions);
177 virtual void updateCachedDetectorGrouping(
const size_t index)
const;
190 void loadEmbeddedInstrumentInfoNexus(Nexus::File *file, std::string &instrumentName, std::string &instrumentXml);
193 void setInstumentFromXML(
const std::string &nxFilename, std::string &instrumentName, std::string &instrumentXml);
196 std::string loadInstrumentXML(
const std::string &filename);
205 void cacheDefaultDetectorGrouping()
const;
206 void invalidateAllSpectrumDefinitions();