82 void populateInstrumentParameters();
84 void setNumberOfDetectorGroups(
const size_t count)
const;
85 void setDetectorGrouping(
const size_t index,
const std::set<detid_t> &detIDs)
const;
88 const Sample &sample()
const;
93 const Run &run()
const;
102 double getLogAsSingleValue(
const std::string &log)
const;
105 int getRunNumber()
const;
109 double getEFixed(
const detid_t detID)
const;
111 double getEFixed(
const std::shared_ptr<const Geometry::IDetector> &detector =
112 std::shared_ptr<const Geometry::IDetector>{
nullptr})
const;
113 double getEFixedGivenEMode(
const std::shared_ptr<const Geometry::IDetector> &detector,
115 double getEFixedForIndirect(
const std::shared_ptr<const Geometry::IDetector> &detector,
116 const std::vector<std::string> ¶meterNames)
const;
118 void setEFixed(
const detid_t detID,
const double value);
121 void saveExperimentInfoNexus(Nexus::File *file,
bool saveLegacyInstrument =
true)
const;
123 void saveExperimentInfoNexus(Nexus::File *file,
bool saveInstrument,
bool saveSample,
bool saveLogs)
const;
125 void loadExperimentInfoNexus(std::string
const &nxFilename, Nexus::File *file, std::string ¶meterStr,
126 std::string
const &prefix);
129 void loadExperimentInfoNexus(
const std::string &nxFilename, Nexus::File *file, std::string ¶meterStr);
131 void loadInstrumentInfoNexus(
const std::string &nxFilename, Nexus::File *file, std::string ¶meterStr);
133 void loadInstrumentInfoNexus(
const std::string &nxFilename, Nexus::File *file);
135 void loadInstrumentParametersNexus(Nexus::File *file, std::string ¶meterStr);
139 void loadSampleAndLogInfoNexus(Nexus::File *file, std::string
const &prefix);
141 void loadSampleAndLogInfoNexus(Nexus::File *file);
143 void readParameterMap(
const std::string ¶meterStr);
146 std::string getWorkspaceStartDate()
const;
149 std::string getAvailableWorkspaceStartDate()
const;
151 std::string getAvailableWorkspaceEndDate()
const;
162 void invalidateSpectrumDefinition(
const size_t index);
163 void updateSpectrumDefinitionIfNecessary(
const size_t index)
const;
166 size_t numberOfDetectorGroups()
const;
168 virtual void populateIfNotLoaded()
const;
170 void setSpectrumDefinitions(
Kernel::cow_ptr<std::vector<SpectrumDefinition>> spectrumDefinitions);
172 virtual void updateCachedDetectorGrouping(
const size_t index)
const;
185 void loadEmbeddedInstrumentInfoNexus(Nexus::File *file, std::string &instrumentName, std::string &instrumentXml);
188 void setInstumentFromXML(
const std::string &nxFilename, std::string &instrumentName, std::string &instrumentXml);
191 std::string loadInstrumentXML(
const std::string &filename);
200 void cacheDefaultDetectorGrouping()
const;
201 void invalidateAllSpectrumDefinitions();