Mantid
|
This class stores information regarding an experimental run as a series of log entries. More...
#include <Run.h>
Public Member Functions | |
size_t | addGoniometer (const Geometry::Goniometer &goniometer) |
Append a goniometer to the run. More... | |
void | clearGoniometers () |
Clear all goniometers on the Run. More... | |
std::shared_ptr< Run > | clone () |
Clone. More... | |
void | filterByTime (const Types::Core::DateAndTime start, const Types::Core::DateAndTime stop) override |
Filter the logs by time. More... | |
std::vector< double > | getBinBoundaries () const |
Returns the vector of bin boundaries. More... | |
const Geometry::Goniometer & | getGoniometer () const |
Return reference to the first const Goniometer object for this run. More... | |
const Geometry::Goniometer & | getGoniometer (const size_t index) const |
Return reference to a const Goniometer object for the run. More... | |
const std::vector< Kernel::Matrix< double > > | getGoniometerMatrices () const |
Get vector of all goniometer matrices in the Run. More... | |
const Kernel::Matrix< double > & | getGoniometerMatrix () const |
Retrieve the first goniometer rotation matrix. More... | |
const Kernel::Matrix< double > & | getGoniometerMatrix (const size_t index) const |
Retrieve the a goniometer rotation matrix. More... | |
size_t | getMemorySize () const override |
Return an approximate memory size for the object in bytes. More... | |
size_t | getNumGoniometers () const |
Get the number of goniometers in the Run. More... | |
double | getProtonCharge () const |
Get the proton charge. More... | |
std::pair< double, double > | histogramBinBoundaries (const double value) const |
Returns the bin boundaries for a given value. More... | |
void | integrateProtonCharge (const std::string &logname="proton_charge") const |
Integrate the proton charge over the whole run time - default log proton_charge. More... | |
void | loadNexus (::NeXus::File *file, const std::string &group, bool keepOpen=false) override |
Load the run from a NeXus file with a given group name. More... | |
void | loadNexus (::NeXus::File *file, const std::string &group, const Mantid::Kernel::NexusHDF5Descriptor &fileInfo, const std::string &prefix, bool keepOpen=false) override |
Load the run from a NeXus file with a given group name. More... | |
Geometry::Goniometer & | mutableGoniometer () |
Return reference to the first non-const Goniometer object for this run. More... | |
Geometry::Goniometer & | mutableGoniometer (const size_t index) |
Return reference to a non-const Goniometer object for the run. More... | |
bool | operator!= (const Run &other) |
Run & | operator+= (const Run &rhs) |
Addition. More... | |
Run & | operator= (const Run &other) |
bool | operator== (const Run &other) |
Run () | |
Run (const Run &other) | |
void | saveNexus (::NeXus::File *file, const std::string &group, bool keepOpen=false) const override |
Save the run to a NeXus file with a given group name. More... | |
void | setGoniometer (const Geometry::Goniometer &goniometer, const bool useLogValues) |
Set a single gonoimeter & read the average values from the logs if told to do so. More... | |
void | setGoniometers (const Geometry::Goniometer &goniometer) |
Set the gonoimeters using the individual values. More... | |
void | setProtonCharge (const double charge) |
Set the proton charge. More... | |
void | splitByTime (Kernel::TimeSplitterType &splitter, std::vector< LogManager * > outputs) const override |
Split the logs based on the given intervals. More... | |
void | storeHistogramBinBoundaries (const std::vector< double > &histoBins) |
Store the given values as a set of histogram bin boundaries. More... | |
~Run () | |
Public Member Functions inherited from Mantid::API::LogManager | |
void | addLogData (Kernel::Property *p) |
Add a log entry. More... | |
void | addLogData (std::unique_ptr< Kernel::Property > p, bool overwrite=false) |
Add a log entry. More... | |
template<class TYPE > | |
void | addProperty (const std::string &name, const TYPE &value, bool overwrite=false) |
Add a property of given type. More... | |
template<class TYPE > | |
void | addProperty (const std::string &name, const TYPE &value, const std::string &units, bool overwrite=false) |
Add a property of a specified type (Simply creates a Kernel::Property of that type) and set its units. More... | |
void | addProperty (Kernel::Property *prop, bool overwrite=false) |
Add data to the object in the form of a property. More... | |
void | addProperty (std::unique_ptr< Kernel::Property > prop, bool overwrite=false) |
Add data to the object in the form of a property. More... | |
void | clearLogs () |
Clear the logs. More... | |
void | clearOutdatedTimeSeriesLogValues () |
Empty all but the last value out of all TimeSeriesProperty logs. More... | |
void | clearTimeSeriesLogs () |
Empty the values out of all TimeSeriesProperty logs. More... | |
const Types::Core::DateAndTime | endTime () const |
Return the run end time. More... | |
void | filterByLog (const Kernel::TimeSeriesProperty< bool > &filter, const std::vector< std::string > &excludedFromFiltering=std::vector< std::string >()) |
Filter the run by the given boolean log. More... | |
virtual void | filterByTime (const Types::Core::DateAndTime start, const Types::Core::DateAndTime stop) |
Filter the logs by time. More... | |
Kernel::TimeSeriesProperty< bool > * | getInvalidValuesFilter (const std::string &logName) const |
returns the invalid values log if the log has a matching invalid values log filter More... | |
double | getLogAsSingleValue (const std::string &name, Kernel::Math::StatisticType statistic=Kernel::Math::Mean) const |
const std::vector< Kernel::Property * > & | getLogData () const |
Access all log entries. More... | |
Kernel::Property * | getLogData (const std::string &name) const |
Access a single log entry. More... | |
virtual size_t | getMemorySize () const |
Return an approximate memory size for the object in bytes. More... | |
const std::vector< Kernel::Property * > & | getProperties () const |
Return all of the current properties. More... | |
Kernel::Property * | getProperty (const std::string &name) const |
Returns the named property as a pointer. More... | |
int | getPropertyAsIntegerValue (const std::string &name) const |
Returns a property as an integer value. More... | |
double | getPropertyAsSingleValue (const std::string &name, Kernel::Math::StatisticType statistic=Kernel::Math::Mean) const |
Returns a property as a single double value from its name. More... | |
template<typename HeldType > | |
HeldType | getPropertyValueAsType (const std::string &name) const |
Get the value of a property as the given TYPE. More... | |
double | getTimeAveragedStd (const std::string &name) const |
Get the time averaged standard deviation for a log. More... | |
template<typename T > | |
Kernel::TimeSeriesProperty< T > * | getTimeSeriesProperty (const std::string &name) const |
Returns a property as a time series property. More... | |
bool | hasInvalidValuesFilter (const std::string &logName) const |
returns true if the log has a matching invalid values log filter More... | |
bool | hasProperty (const std::string &name) const |
Does the property exist on the object. More... | |
virtual void | loadNexus (::NeXus::File *file, const std::string &group, bool keepOpen=false) |
Load the run from a NeXus file with a given group name. More... | |
virtual void | loadNexus (::NeXus::File *file, const std::string &group, const Mantid::Kernel::NexusHDF5Descriptor &fileInfo, const std::string &prefix, bool keepOpen=false) |
Load the run from a NeXus file with a given group name. More... | |
LogManager () | |
LogManager (const LogManager &other) | |
bool | operator!= (const LogManager &other) const |
LogManager & | operator= (const LogManager &other) |
bool | operator== (const LogManager &other) const |
void | removeLogData (const std::string &name, const bool delproperty=true) |
Remove a named log entry. More... | |
void | removeProperty (const std::string &name, bool delProperty=true) |
Remove a named property. More... | |
virtual void | saveNexus (::NeXus::File *file, const std::string &group, bool keepOpen=false) const |
Save the run to a NeXus file with a given group name. More... | |
void | setStartAndEndTime (const Types::Core::DateAndTime &start, const Types::Core::DateAndTime &end) |
Set the run start and end. More... | |
virtual void | splitByTime (Kernel::TimeSplitterType &splitter, std::vector< LogManager * > outputs) const |
Split the logs based on the given intervals. More... | |
const Types::Core::DateAndTime | startTime () const |
Return the run start time. More... | |
virtual | ~LogManager () |
Destructor. More... | |
Private Member Functions | |
void | calculateAverageGoniometerMatrix () |
Calculate the average gonoimeter matrix. More... | |
void | calculateGoniometerMatrices (const Geometry::Goniometer &goniometer) |
Calculate the gonoimeter matrices from logs. More... | |
void | copyGoniometers (const Run &other) |
Copy the goniometers from another. More... | |
void | loadNexusCommon (::NeXus::File *file, const std::string &nameClass) |
void | mergeMergables (Mantid::Kernel::PropertyManager &sum, const Mantid::Kernel::PropertyManager &toAdd) |
Adds all the time series in from one property manager into another. More... | |
Private Attributes | |
std::vector< std::unique_ptr< Geometry::Goniometer > > | m_goniometers |
Goniometer for this run. More... | |
std::vector< double > | m_histoBins |
A set of histograms that can be stored here for future reference. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Mantid::API::LogManager | |
static std::string | getInvalidValuesFilterLogName (const std::string &logName) |
Gets the correct log name for the matching invalid values log for a given log name. More... | |
Protected Member Functions inherited from Mantid::API::LogManager | |
void | loadNexus (::NeXus::File *file, const Mantid::Kernel::NexusHDF5Descriptor &fileInfo, const std::string &prefix) |
void | loadNexus (::NeXus::File *file, const std::map< std::string, std::string > &entries) |
Load the run from a NeXus file with a given group name. More... | |
Protected Attributes inherited from Mantid::API::LogManager | |
std::unique_ptr< Kernel::PropertyManager > | m_manager |
A pointer to a property manager. More... | |
Static Protected Attributes inherited from Mantid::API::LogManager | |
static const char * | PROTON_CHARGE_LOG_NAME = "gd_prtn_chrg" |
Name of the log entry containing the proton charge when retrieved using getProtonCharge. More... | |
This class stores information regarding an experimental run as a series of log entries.
Mantid::API::Run::Run | ( | ) |
Definition at line 47 of file Run.cpp.
References m_goniometers.
Mantid::API::Run::Run | ( | const Run & | other | ) |
Definition at line 52 of file Run.cpp.
References copyGoniometers().
|
default |
References std::operator!=(), Mantid::API::operator+=(), and std::operator==().
size_t Mantid::API::Run::addGoniometer | ( | const Geometry::Goniometer & | goniometer | ) |
Append a goniometer to the run.
Add a new Goniometer to this Run.
goniometer | :: goniometer to add |
Definition at line 381 of file Run.cpp.
References m_goniometers.
|
private |
Calculate the average gonoimeter matrix.
Calculate the average goniometer matrix.
Definition at line 597 of file Run.cpp.
References Mantid::API::g_log, Mantid::API::LogManager::getLogAsSingleValue(), Mantid::Kernel::Math::LastValue, m_goniometers, Mantid::Kernel::Math::Maximum, Mantid::Kernel::Math::Minimum, Mantid::Kernel::Math::TimeAveragedMean, and Mantid::Kernel::Logger::warning().
Referenced by setGoniometer().
|
private |
Calculate the gonoimeter matrices from logs.
Calculate the goniometer matrixes from logs.
goniometer | goniometer with axes names to use |
Definition at line 634 of file Run.cpp.
References Mantid::Geometry::Goniometer::getAxis(), Mantid::Geometry::Goniometer::getNumberAxes(), m_goniometers, and Mantid::Geometry::GoniometerAxis::name.
Referenced by setGoniometers().
void Mantid::API::Run::clearGoniometers | ( | ) |
Clear all goniometers on the Run.
Remove all goniometers on the Run.
Definition at line 388 of file Run.cpp.
References m_goniometers.
std::shared_ptr< Run > Mantid::API::Run::clone | ( | ) |
Clone.
Definition at line 78 of file Run.cpp.
References clone(), m_histoBins, and Mantid::API::LogManager::m_manager.
Referenced by clone().
|
private |
Copy the goniometers from another.
other | :: other workspace to copy |
Definition at line 685 of file Run.cpp.
References m_goniometers.
Referenced by operator=(), and Run().
|
overridevirtual |
Filter the logs by time.
Filter out a run by time.
Takes out any TimeSeriesProperty log entries outside of the given absolute time range.
Total proton charge will get re-integrated after filtering.
start | :: Absolute start time. Any log entries at times >= to this time are kept. |
stop | :: Absolute stop time. Any log entries at times < than this time are kept. |
Reimplemented from Mantid::API::LogManager.
Definition at line 101 of file Run.cpp.
References Mantid::API::LogManager::filterByTime(), and integrateProtonCharge().
std::vector< double > Mantid::API::Run::getBinBoundaries | ( | ) | const |
Returns the vector of bin boundaries.
Returns the energy bin boundaries.
Throws a std::runtime_error if the energy bins have not been set.
Definition at line 304 of file Run.cpp.
References m_histoBins.
const Geometry::Goniometer & Mantid::API::Run::getGoniometer | ( | ) | const |
Return reference to the first const Goniometer object for this run.
Definition at line 324 of file Run.cpp.
References m_goniometers.
Referenced by Mantid::DataObjects::LeanElasticPeaksWorkspace::createPeakHKL(), Mantid::DataObjects::PeaksWorkspace::createPeakHKL(), Mantid::DataObjects::PeaksWorkspace::createPeakQSample(), export_Run(), and Mantid::DataHandling::SetSample::setSampleShape().
const Geometry::Goniometer & Mantid::API::Run::getGoniometer | ( | const size_t | index | ) | const |
Return reference to a const Goniometer object for the run.
Get the Goniometer for the given associated experiment-info index.
index | :: index of the run to get. |
Definition at line 396 of file Run.cpp.
References index, and m_goniometers.
const std::vector< Kernel::Matrix< double > > Mantid::API::Run::getGoniometerMatrices | ( | ) | const |
Get vector of all goniometer matrices in the Run.
Get a vector of all the gonoimeter rotation matries.
Definition at line 431 of file Run.cpp.
References m_goniometers.
const Mantid::Kernel::DblMatrix & Mantid::API::Run::getGoniometerMatrix | ( | ) | const |
Retrieve the first goniometer rotation matrix.
Get the gonimeter rotation matrix, calculated using the previously set Goniometer object as well as the angles loaded in the run (if any).
Definition at line 369 of file Run.cpp.
References getGoniometerMatrix().
Referenced by Mantid::MDAlgorithms::MDNorm::calQTransform(), and getGoniometerMatrix().
const Mantid::Kernel::DblMatrix & Mantid::API::Run::getGoniometerMatrix | ( | const size_t | index | ) | const |
Retrieve the a goniometer rotation matrix.
Get the gonoimeter rotation matrix, calculated using the previously set Goniometer object as well as the angles loaded in the run (if any).
index | :: index of the run to get. |
Definition at line 421 of file Run.cpp.
References index, and m_goniometers.
|
overridevirtual |
Return an approximate memory size for the object in bytes.
Return the total memory used by the run object, in bytes.
Reimplemented from Mantid::API::LogManager.
Definition at line 316 of file Run.cpp.
References Mantid::API::LogManager::getMemorySize(), m_goniometers, and m_histoBins.
Referenced by Mantid::API::MatrixWorkspace::getMemorySize(), and Mantid::DataObjects::EventWorkspace::getMemorySize().
size_t Mantid::API::Run::getNumGoniometers | ( | ) | const |
Get the number of goniometers in the Run.
Definition at line 373 of file Run.cpp.
References m_goniometers.
Referenced by export_Run().
double Mantid::API::Run::getProtonCharge | ( | ) | const |
Get the proton charge.
Retrieve the total good proton charge delivered in this run.
Exception::NotFoundError | if the proton charge has not been set |
Definition at line 182 of file Run.cpp.
References Mantid::API::g_log, integrateProtonCharge(), Mantid::API::LogManager::m_manager, Mantid::Kernel::Logger::notice(), Mantid::API::LogManager::PROTON_CHARGE_LOG_NAME, and Mantid::Kernel::Logger::warning().
Referenced by Mantid::Algorithms::CompareWorkspaces::checkRunProperties(), export_Run(), Mantid::DataHandling::FilterEventsByLogValuePreNexus::setProtonCharge(), and Mantid::DataHandling::LoadEventPreNexus2::setProtonCharge().
std::pair< double, double > Mantid::API::Run::histogramBinBoundaries | ( | const double | value | ) | const |
Returns the bin boundaries for a given value.
Returns the energy bin boundaries for a given energy value if they have been stored here.
Throws a std::runtime_error if the energy bins have not been set and a std::out_of_range error if the input value is out of the stored range
Definition at line 275 of file Run.cpp.
References Mantid::Kernel::VectorHelper::getBinIndex(), index, m_histoBins, and value.
void Mantid::API::Run::integrateProtonCharge | ( | const std::string & | logname = "proton_charge" | ) | const |
Integrate the proton charge over the whole run time - default log proton_charge.
Calculate the total proton charge by integrating up all the entries in the "proton_charge" time series log.
This is then saved in the log entry using setProtonCharge(). If "proton_charge" is not found, the value is not stored
Conversion factor between picoColumbs and microAmp*hours
Definition at line 208 of file Run.cpp.
References Mantid::API::g_log, Mantid::API::LogManager::getProperty(), Mantid::API::LogManager::hasProperty(), setProtonCharge(), Mantid::Kernel::Property::units(), Mantid::Kernel::TimeSeriesProperty< TYPE >::valuesAsVector(), and Mantid::Kernel::Logger::warning().
Referenced by export_Run(), filterByTime(), getProtonCharge(), Mantid::DataHandling::FilterEventsByLogValuePreNexus::setProtonCharge(), Mantid::DataHandling::LoadEventPreNexus2::setProtonCharge(), and splitByTime().
|
overridevirtual |
Load the run from a NeXus file with a given group name.
Load the object from an open NeXus file.
file | :: open NeXus file |
group | :: name of the group to open. Empty string to NOT open a group, but load any NXlog in the current open group. |
keepOpen | :: If true, then the file is left open after doing to load |
Reimplemented from Mantid::API::LogManager.
Definition at line 565 of file Run.cpp.
References Mantid::API::LogManager::getProperty(), Mantid::API::LogManager::hasProperty(), Mantid::API::LogManager::loadNexus(), loadNexusCommon(), setProtonCharge(), and Mantid::Kernel::PropertyWithValue< TYPE >::value().
|
overridevirtual |
Load the run from a NeXus file with a given group name.
Load the object from an open NeXus file.
Overload that uses NexusHDF5Descriptor for faster metadata lookup
file | currently opened NeXus file |
group | current group (relative name) |
fileInfo | descriptor with in-memory index with all entries |
prefix | indicates current group location in file (absolute name) |
keepOpen | |
file | :: open NeXus file |
group | :: name of the group to open. Empty string to NOT open a group, but load any NXlog in the current open group. |
keepOpen | :: If true, then the file is left open after doing to load |
Reimplemented from Mantid::API::LogManager.
Definition at line 498 of file Run.cpp.
References Mantid::Kernel::NexusHDF5Descriptor::getAllEntries(), Mantid::API::LogManager::getProperty(), Mantid::API::LogManager::hasProperty(), Mantid::API::LogManager::loadNexus(), loadNexusCommon(), setProtonCharge(), and Mantid::Kernel::PropertyWithValue< TYPE >::value().
Referenced by Mantid::API::ExperimentInfo::loadSampleAndLogInfoNexus().
|
private |
Definition at line 694 of file Run.cpp.
References Mantid::API::LogManager::addProperty(), Mantid::API::LogManager::hasProperty(), m_goniometers, m_histoBins, setProtonCharge(), and std::to_string().
Referenced by loadNexus().
|
private |
Adds all the time series in from one property manager into another.
Adds all the time series in the second property manager to those in the first.
sum | the properties to add to |
toAdd | the properties to add |
Definition at line 663 of file Run.cpp.
References Mantid::Kernel::PropertyManager::declareProperty(), Mantid::Kernel::PropertyManager::getProperties(), Mantid::Kernel::PropertyManager::getProperty(), and Mantid::Kernel::Property::merge().
Referenced by operator+=().
Geometry::Goniometer & Mantid::API::Run::mutableGoniometer | ( | ) |
Return reference to the first non-const Goniometer object for this run.
Definition at line 327 of file Run.cpp.
References m_goniometers.
Geometry::Goniometer & Mantid::API::Run::mutableGoniometer | ( | const size_t | index | ) |
Return reference to a non-const Goniometer object for the run.
Get the non-const Goniometer for the given associated experiment-info index.
index | :: index of the run to get. |
Definition at line 408 of file Run.cpp.
References index, and m_goniometers.
bool Mantid::API::Run::operator!= | ( | const Run & | other | ) |
Definition at line 76 of file Run.cpp.
References operator==().
Addition.
Adds just the properties that are safe to add.
All time series are merged together and the list of addable properties are added
rhs | The object that is being added to this. |
Definition at line 113 of file Run.cpp.
References left, Mantid::API::LogManager::m_manager, mergeMergables(), rhs, and right.
Definition at line 57 of file Run.cpp.
References copyGoniometers(), m_histoBins, and Mantid::API::LogManager::operator=().
bool Mantid::API::Run::operator== | ( | const Run & | other | ) |
Definition at line 66 of file Run.cpp.
References m_goniometers, m_histoBins, and Mantid::API::LogManager::operator==().
Referenced by operator!=().
|
overridevirtual |
Save the run to a NeXus file with a given group name.
Save the object to an open NeXus file.
file | :: open NeXus file |
group | :: name of the group to create |
keepOpen | :: If true, leave the file open after saving |
Reimplemented from Mantid::API::LogManager.
Definition at line 446 of file Run.cpp.
References Mantid::API::LogManager::hasProperty(), m_goniometers, m_histoBins, Mantid::API::LogManager::saveNexus(), and std::to_string().
Referenced by Mantid::API::ExperimentInfo::saveExperimentInfoNexus().
void Mantid::API::Run::setGoniometer | ( | const Geometry::Goniometer & | goniometer, |
const bool | useLogValues | ||
) |
Set a single gonoimeter & read the average values from the logs if told to do so.
Set the gonoimeter & optionally read the average values from the logs.
goniometer | :: A reference to a goniometer |
useLogValues | :: If true, recalculate the goniometer using the log values |
Definition at line 336 of file Run.cpp.
References calculateAverageGoniometerMatrix(), and m_goniometers.
void Mantid::API::Run::setGoniometers | ( | const Geometry::Goniometer & | goniometer | ) |
Set the gonoimeters using the individual values.
Set the gonoimeter & read the individual values from the logs.
goniometer | :: A reference to a goniometer |
Definition at line 353 of file Run.cpp.
References calculateGoniometerMatrices(), and m_goniometers.
void Mantid::API::Run::setProtonCharge | ( | const double | charge | ) |
Set the proton charge.
Set the good proton charge total for this run.
charge | :: The proton charge in uA.hour |
Definition at line 165 of file Run.cpp.
References Mantid::API::LogManager::addProperty(), Mantid::API::LogManager::getProperty(), Mantid::API::LogManager::hasProperty(), Mantid::API::LogManager::PROTON_CHARGE_LOG_NAME, Mantid::Kernel::Property::setUnits(), and Mantid::Kernel::Property::setValue().
Referenced by integrateProtonCharge(), loadNexus(), loadNexusCommon(), Mantid::DataHandling::LoadISISNexusHelper::loadRunDetails(), and Mantid::DataHandling::LoadRawHelper::setProtonCharge().
|
overridevirtual |
Split the logs based on the given intervals.
Split a run by time (splits the TimeSeriesProperties contained).
Total proton charge will get re-integrated after filtering.
splitter | :: TimeSplitterType with the intervals and destinations. |
outputs | :: Vector of output runs. |
Reimplemented from Mantid::API::LogManager.
Definition at line 145 of file Run.cpp.
References integrateProtonCharge(), and Mantid::API::LogManager::splitByTime().
void Mantid::API::Run::storeHistogramBinBoundaries | ( | const std::vector< double > & | histoBins | ) |
Store the given values as a set of histogram bin boundaries.
Store the given values as a set of energy bin boundaries.
Throws
histoBins | :: A vector of values that are interpreted as bin boundaries from a histogram |
Definition at line 251 of file Run.cpp.
References m_histoBins.
|
private |
Goniometer for this run.
Definition at line 130 of file Run.h.
Referenced by addGoniometer(), calculateAverageGoniometerMatrix(), calculateGoniometerMatrices(), clearGoniometers(), copyGoniometers(), getGoniometer(), getGoniometerMatrices(), getGoniometerMatrix(), getMemorySize(), getNumGoniometers(), loadNexusCommon(), mutableGoniometer(), operator==(), Run(), saveNexus(), setGoniometer(), and setGoniometers().
|
private |
A set of histograms that can be stored here for future reference.
Definition at line 132 of file Run.h.
Referenced by clone(), getBinBoundaries(), getMemorySize(), histogramBinBoundaries(), loadNexusCommon(), operator=(), operator==(), saveNexus(), and storeHistogramBinBoundaries().