86 void populateInstrumentParameters();
88 void setNumberOfDetectorGroups(
const size_t count)
const;
89 void setDetectorGrouping(
const size_t index,
const std::set<detid_t> &detIDs)
const;
92 const Sample &sample()
const;
97 const Run &run()
const;
106 double getLogAsSingleValue(
const std::string &log)
const;
109 int getRunNumber()
const;
113 double getEFixed(
const detid_t detID)
const;
115 double getEFixed(
const std::shared_ptr<const Geometry::IDetector> &detector =
116 std::shared_ptr<const Geometry::IDetector>{
nullptr})
const;
117 double getEFixedGivenEMode(
const std::shared_ptr<const Geometry::IDetector> &detector,
119 double getEFixedForIndirect(
const std::shared_ptr<const Geometry::IDetector> &detector,
120 const std::vector<std::string> ¶meterNames)
const;
122 void setEFixed(
const detid_t detID,
const double value);
125 void saveExperimentInfoNexus(Nexus::File *file,
bool saveLegacyInstrument =
true)
const;
127 void saveExperimentInfoNexus(Nexus::File *file,
bool saveInstrument,
bool saveSample,
bool saveLogs)
const;
129 void loadExperimentInfoNexus(std::string
const &nxFilename, Nexus::File *file, std::string ¶meterStr,
130 std::string
const &prefix);
133 void loadExperimentInfoNexus(
const std::string &nxFilename, Nexus::File *file, std::string ¶meterStr);
135 void loadInstrumentInfoNexus(
const std::string &nxFilename, Nexus::File *file, std::string ¶meterStr);
137 void loadInstrumentInfoNexus(
const std::string &nxFilename, Nexus::File *file);
139 void loadInstrumentParametersNexus(Nexus::File *file, std::string ¶meterStr);
143 void loadSampleAndLogInfoNexus(Nexus::File *file, std::string
const &prefix);
145 void loadSampleAndLogInfoNexus(Nexus::File *file);
147 void readParameterMap(
const std::string ¶meterStr);
150 std::string getWorkspaceStartDate()
const;
153 std::string getAvailableWorkspaceStartDate()
const;
155 std::string getAvailableWorkspaceEndDate()
const;
172 std::string getInstrumentName()
const;
174 void invalidateSpectrumDefinition(
const size_t index);
175 void updateSpectrumDefinitionIfNecessary(
const size_t index)
const;
178 size_t numberOfDetectorGroups()
const;
180 virtual void populateIfNotLoaded()
const;
182 void setSpectrumDefinitions(
Kernel::cow_ptr<std::vector<SpectrumDefinition>> spectrumDefinitions);
184 virtual void updateCachedDetectorGrouping(
const size_t index)
const;
202 void adoptBeamline();
207 const size_t compIndex,
const std::string &
name,
211 void loadEmbeddedInstrumentInfoNexus(Nexus::File *file, std::string &instrumentName, std::string &instrumentXml);
214 void setInstumentFromXML(
const std::string &nxFilename, std::string &instrumentName, std::string &instrumentXml);
217 std::string loadInstrumentXML(
const std::string &filename);
226 void cacheDefaultDetectorGrouping()
const;
227 void invalidateAllSpectrumDefinitions();