9#include "MantidAPI/DllConfig.h"
23class SpectrumDefinition;
69 const std::string toString()
const;
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(
const std::string &nxFilename, ::NeXus::File *file, std::string ¶meterStr,
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);
138 void loadInstrumentParametersNexus(::NeXus::File *file, std::string ¶meterStr);
149 const std::string &prefix);
151 void loadSampleAndLogInfoNexus(::NeXus::File *file);
153 void readParameterMap(
const std::string ¶meterStr);
157 std::string getWorkspaceStartDate()
const;
160 std::string getAvailableWorkspaceStartDate()
const;
162 std::string getAvailableWorkspaceEndDate()
const;
173 void invalidateSpectrumDefinition(
const size_t index);
174 void updateSpectrumDefinitionIfNecessary(
const size_t index)
const;
177 size_t numberOfDetectorGroups()
const;
179 virtual void populateIfNotLoaded()
const;
181 void setSpectrumDefinitions(
Kernel::cow_ptr<std::vector<SpectrumDefinition>> spectrumDefinitions);
183 virtual void updateCachedDetectorGrouping(
const size_t index)
const;
197 void loadEmbeddedInstrumentInfoNexus(::NeXus::File *file, std::string &instrumentName, std::string &instrumentXml);
201 void setInstumentFromXML(
const std::string &nxFilename, std::string &instrumentName, std::string &instrumentXml);
204 std::string loadInstrumentXML(
const std::string &filename);
213 void cacheDefaultDetectorGrouping()
const;
214 void invalidateAllSpectrumDefinitions();
double value
The value of the point.
std::map< DeltaEMode::Type, std::string > index
This class is shared by a few Workspace types and holds information related to a particular experimen...
std::once_flag m_defaultDetectorGroupingCached
Kernel::cow_ptr< Sample > m_sample
The information on the sample environment.
std::shared_ptr< Geometry::ParameterMap > m_parmap
Parameters modifying the base instrument.
std::unordered_map< detid_t, size_t > m_det2group
Detector grouping information.
virtual ~ExperimentInfo()
Virtual destructor.
std::mutex m_spectrumInfoMutex
std::unique_ptr< Beamline::SpectrumInfo > m_spectrumInfo
std::unique_ptr< SpectrumInfo > m_spectrumInfoWrapper
std::vector< char > m_spectrumDefinitionNeedsUpdate
Geometry::Instrument_const_sptr sptr_instrument
The base (unparametrized) instrument.
Kernel::cow_ptr< Run > m_run
The run information.
This class stores information regarding an experimental run as a series of log entries.
This class stores information about the sample used in particular run.
API::SpectrumInfo is an intermediate step towards a SpectrumInfo that is part of Instrument-2....
ComponentInfo : Provides a component centric view on to the instrument.
Geometry::DetectorInfo is an intermediate step towards a DetectorInfo that is part of Instrument-2....
Interface class for detector objects.
This class is used to store information about parameters in XML instrument definition files and instr...
Base class for properties.
Implements a copy on write data template.
std::shared_ptr< const ExperimentInfo > ExperimentInfo_const_sptr
Shared pointer to const ExperimentInfo.
std::shared_ptr< ExperimentInfo > ExperimentInfo_sptr
Shared pointer to ExperimentInfo.
std::shared_ptr< const Instrument > Instrument_const_sptr
Shared pointer to an const instrument object.
Helper class which provides the Collimation Length for SANS instruments.
Type
Define the available energy transfer modes It is important to assign enums proper numbers,...