84 void populateInstrumentParameters();
86 void setNumberOfDetectorGroups(
const size_t count)
const;
87 void setDetectorGrouping(
const size_t index,
const std::set<detid_t> &detIDs)
const;
90 const Sample &sample()
const;
95 const Run &run()
const;
104 double getLogAsSingleValue(
const std::string &log)
const;
107 int getRunNumber()
const;
111 double getEFixed(
const detid_t detID)
const;
113 double getEFixed(
const std::shared_ptr<const Geometry::IDetector> &detector =
114 std::shared_ptr<const Geometry::IDetector>{
nullptr})
const;
115 double getEFixedGivenEMode(
const std::shared_ptr<const Geometry::IDetector> &detector,
117 double getEFixedForIndirect(
const std::shared_ptr<const Geometry::IDetector> &detector,
118 const std::vector<std::string> ¶meterNames)
const;
120 void setEFixed(
const detid_t detID,
const double value);
123 void saveExperimentInfoNexus(Nexus::File *file,
bool saveLegacyInstrument =
true)
const;
125 void saveExperimentInfoNexus(Nexus::File *file,
bool saveInstrument,
bool saveSample,
bool saveLogs)
const;
127 void loadExperimentInfoNexus(std::string
const &nxFilename, Nexus::File *file, std::string ¶meterStr,
128 std::string
const &prefix);
131 void loadExperimentInfoNexus(
const std::string &nxFilename, Nexus::File *file, std::string ¶meterStr);
133 void loadInstrumentInfoNexus(
const std::string &nxFilename, Nexus::File *file, std::string ¶meterStr);
135 void loadInstrumentInfoNexus(
const std::string &nxFilename, Nexus::File *file);
137 void loadInstrumentParametersNexus(Nexus::File *file, std::string ¶meterStr);
141 void loadSampleAndLogInfoNexus(Nexus::File *file, std::string
const &prefix);
143 void loadSampleAndLogInfoNexus(Nexus::File *file);
145 void readParameterMap(
const std::string ¶meterStr);
148 std::string getWorkspaceStartDate()
const;
151 std::string getAvailableWorkspaceStartDate()
const;
153 std::string getAvailableWorkspaceEndDate()
const;
166 std::string getInstrumentName()
const;
168 void invalidateSpectrumDefinition(
const size_t index);
169 void updateSpectrumDefinitionIfNecessary(
const size_t index)
const;
172 size_t numberOfDetectorGroups()
const;
174 virtual void populateIfNotLoaded()
const;
176 void setSpectrumDefinitions(
Kernel::cow_ptr<std::vector<SpectrumDefinition>> spectrumDefinitions);
178 virtual void updateCachedDetectorGrouping(
const size_t index)
const;
196 void adoptBeamline();
205 void loadEmbeddedInstrumentInfoNexus(Nexus::File *file, std::string &instrumentName, std::string &instrumentXml);
208 void setInstumentFromXML(
const std::string &nxFilename, std::string &instrumentName, std::string &instrumentXml);
211 std::string loadInstrumentXML(
const std::string &filename);
220 void cacheDefaultDetectorGrouping()
const;
221 void invalidateAllSpectrumDefinitions();