Mantid
|
Defines functions and utilities to create and deal with sparse instruments. More...
#include <SparseWorkspace.h>
Public Member Functions | |
virtual HistogramData::Histogram | bilinearInterpolateFromDetectorGrid (const double lat, const double lon) const |
Spatially interpolate a single histogram from nearby detectors using bilinear interpolation method. More... | |
virtual HistogramData::Histogram | interpolateFromDetectorGrid (const double lat, const double lon) const |
Spatially interpolate a single histogram from nearby detectors. More... | |
SparseWorkspace (const API::MatrixWorkspace &modelWS, const size_t wavelengthPoints, const size_t rows, const size_t columns) | |
Public Member Functions inherited from Mantid::DataObjects::Workspace2D | |
std::size_t | blocksize () const override |
get the size of each vector More... | |
std::unique_ptr< Workspace2D > | clone () const |
Returns a clone of the workspace. More... | |
std::unique_ptr< Workspace2D > | cloneEmpty () const |
Returns a default-initialized clone of the workspace. More... | |
void | generateHistogram (const std::size_t index, const MantidVec &X, MantidVec &Y, MantidVec &E, bool skipError=false) const override |
Generate a new histogram by rebinning the existing histogram. More... | |
std::size_t | getMaxNumberBins () const override |
Returns the maximum number of bins in a workspace (works on ragged data). More... | |
std::size_t | getNumberBins (const std::size_t &index) const override |
Returns the number of bins for a given histogram index. More... | |
std::size_t | getNumberHistograms () const override |
Returns the histogram number. More... | |
const Histogram1D & | getSpectrum (const size_t index) const override |
Return const reference to Histogram1D at the given workspace index. More... | |
Histogram1D & | getSpectrum (const size_t index) override |
Return the underlying ISpectrum ptr at the given workspace index. More... | |
const std::string | id () const override |
Gets the name of the workspace type. More... | |
bool | isRaggedWorkspace () const override |
Returns true if the workspace is ragged (has differently sized spectra). More... | |
Workspace2D & | operator= (const Workspace2D &other)=delete |
void | setImageE (const API::MantidImage &image, size_t start=0, bool parallelExecution=true) override |
Copy the data from an image to this workspace's errors. More... | |
void | setImageY (const API::MantidImage &image, size_t start=0, bool parallelExecution=true) override |
Copy the data (Y's) from an image to this workspace. More... | |
void | setImageYAndE (const API::MantidImage &imageY, const API::MantidImage &imageE, size_t start=0, bool loadAsRectImg=false, double scale_1=1.0, bool parallelExecution=true) |
Copy the data from an image to this workspace's (Y's) and errors. More... | |
void | setMonitorList (const std::vector< specnum_t > &mList) |
sets the monitorWorkspace indexlist More... | |
std::size_t | size () const override |
get pseudo size More... | |
Workspace2D (const Parallel::StorageMode storageMode=Parallel::StorageMode::Cloned) | |
Constructor. More... | |
~Workspace2D () override | |
Destructor. More... | |
Public Member Functions inherited from Mantid::API::HistoWorkspace | |
std::unique_ptr< HistoWorkspace > | clone () const |
Returns a clone of the workspace. More... | |
std::unique_ptr< HistoWorkspace > | cloneEmpty () const |
Returns a default-initialized clone of the workspace. More... | |
HistoWorkspace (const Parallel::StorageMode storageMode=Parallel::StorageMode::Cloned) | |
Public Member Functions inherited from Mantid::API::MatrixWorkspace | |
MatrixWorkspace_uptr | clone () const |
Returns a clone of the workspace. More... | |
MatrixWorkspace_uptr | cloneEmpty () const |
Returns a default-initialized clone of the workspace. More... | |
const Indexing::IndexInfo & | indexInfo () const |
Returns a const reference to the IndexInfo object of the workspace. More... | |
void | initialize (const Indexing::IndexInfo &indexInfo, const HistogramData::Histogram &histogram) |
void | initialize (const std::size_t &NVectors, const HistogramData::Histogram &histogram) |
void | initialize (const std::size_t &NVectors, const std::size_t &XLength, const std::size_t &YLength) |
Initialize the workspace. More... | |
MatrixWorkspace & | operator= (const MatrixWorkspace &other)=delete |
void | setIndexInfo (const Indexing::IndexInfo &indexInfo) |
Sets the IndexInfo object of the workspace. More... | |
const std::string | toString () const override |
Serializes the object to a string. More... | |
const std::string | toString () const override |
String description of state. More... | |
~MatrixWorkspace () override | |
Delete. More... | |
std::shared_ptr< const Geometry::IDetector > | getDetector (const size_t workspaceIndex) const |
Get the effective detector for the given spectrum. More... | |
double | detectorTwoTheta (const Geometry::IDetector &det) const |
Returns the 2Theta scattering angle for a detector. More... | |
double | detectorSignedTwoTheta (const Geometry::IDetector &det) const |
Returns the signed 2Theta scattering angle for a detector. More... | |
virtual void | updateSpectraUsing (const SpectrumDetectorMapping &map) |
void | rebuildSpectraMapping (const bool includeMonitors=true, const specnum_t specNumOffset=1) |
Build the default spectra mapping, most likely wanted after an instrument update. More... | |
spec2index_map | getSpectrumToWorkspaceIndexMap () const |
Return a map where: KEY is the Spectrum # VALUE is the Workspace Index. More... | |
detid2index_map | getDetectorIDToWorkspaceIndexMap (bool throwIfMultipleDets=false, bool ignoreIfNoValidDets=false) const |
Return a map where: KEY is the DetectorID (pixel ID) VALUE is the Workspace Index. More... | |
virtual std::vector< size_t > | getDetectorIDToWorkspaceIndexVector (detid_t &offset, bool throwIfMultipleDets=false) const |
Return a vector where: The index into the vector = DetectorID (pixel ID) + offset The value at that index = the corresponding Workspace Index. More... | |
virtual std::vector< size_t > | getSpectrumToWorkspaceIndexVector (specnum_t &offset) const |
Return a vector where: The index into the vector = spectrum number + offset The value at that index = the corresponding Workspace Index. More... | |
std::vector< size_t > | getIndicesFromSpectra (const std::vector< specnum_t > &spectraList) const |
Converts a list of spectrum numbers to the corresponding workspace indices. More... | |
size_t | getIndexFromSpectrumNumber (const specnum_t specNo) const |
Given a spectrum number, find the corresponding workspace index. More... | |
std::vector< size_t > | getIndicesFromDetectorIDs (const std::vector< detid_t > &detIdList) const |
Converts a list of detector IDs to the corresponding workspace indices. More... | |
std::vector< specnum_t > | getSpectraFromDetectorIDs (const std::vector< detid_t > &detIdList) const |
Converts a list of detector IDs to the corresponding spectrum numbers. More... | |
bool | hasGroupedDetectors () const |
Does the workspace has any grouped detectors? More... | |
size_t | getMemorySize () const override |
Get the footprint in memory in bytes. More... | |
virtual size_t | getMemorySizeForXAxes () const |
Returns the memory used (in bytes) by the X axes, handling ragged bins. More... | |
void | setTitle (const std::string &) override |
Sets MatrixWorkspace title. More... | |
const std::string | getTitle () const override |
Gets MatrixWorkspace title (same as Run object run_title property) More... | |
virtual Types::Core::DateAndTime | getFirstPulseTime () const |
Return the time of the first pulse received, by accessing the run's sample logs to find the proton_charge. More... | |
Types::Core::DateAndTime | getLastPulseTime () const |
Return the time of the last pulse received, by accessing the run's sample logs to find the proton_charge. More... | |
std::size_t | yIndexOfX (const double xValue, const std::size_t &index=0, const double tolerance=0.0) const |
Returns the y index which corresponds to the X Value provided. More... | |
HistogramData::Histogram | histogram (const size_t index) const |
Returns the Histogram at the given workspace index. More... | |
template<typename... T> | |
void | setHistogram (const size_t index, T &&...data) & |
void | convertToCounts (const size_t index) |
void | convertToFrequencies (const size_t index) |
HistogramData::BinEdges | binEdges (const size_t index) const |
HistogramData::Points | points (const size_t index) const |
HistogramData::PointStandardDeviations | pointStandardDeviations (const size_t index) const |
template<typename... T> | |
void | setBinEdges (const size_t index, T &&...data) & |
template<typename... T> | |
void | setPoints (const size_t index, T &&...data) & |
template<typename... T> | |
void | setPointVariances (const size_t index, T &&...data) & |
template<typename... T> | |
void | setPointStandardDeviations (const size_t index, T &&...data) & |
HistogramData::Counts | counts (const size_t index) const |
HistogramData::CountVariances | countVariances (const size_t index) const |
HistogramData::CountStandardDeviations | countStandardDeviations (const size_t index) const |
HistogramData::Frequencies | frequencies (const size_t index) const |
HistogramData::FrequencyVariances | frequencyVariances (const size_t index) const |
HistogramData::FrequencyStandardDeviations | frequencyStandardDeviations (const size_t index) const |
template<typename... T> | |
void | setCounts (const size_t index, T &&...data) & |
template<typename... T> | |
void | setCountVariances (const size_t index, T &&...data) & |
template<typename... T> | |
void | setCountStandardDeviations (const size_t index, T &&...data) & |
template<typename... T> | |
void | setFrequencies (const size_t index, T &&...data) & |
template<typename... T> | |
void | setFrequencyVariances (const size_t index, T &&...data) & |
template<typename... T> | |
void | setFrequencyStandardDeviations (const size_t index, T &&...data) & |
const HistogramData::HistogramX & | x (const size_t index) const |
const HistogramData::HistogramY & | y (const size_t index) const |
const HistogramData::HistogramE & | e (const size_t index) const |
const HistogramData::HistogramDx & | dx (const size_t index) const |
HistogramData::HistogramX & | mutableX (const size_t index) & |
HistogramData::HistogramDx & | mutableDx (const size_t index) & |
HistogramData::HistogramY & | mutableY (const size_t index) & |
HistogramData::HistogramE & | mutableE (const size_t index) & |
Kernel::cow_ptr< HistogramData::HistogramX > | sharedX (const size_t index) const |
Kernel::cow_ptr< HistogramData::HistogramY > | sharedY (const size_t index) const |
Kernel::cow_ptr< HistogramData::HistogramE > | sharedE (const size_t index) const |
Kernel::cow_ptr< HistogramData::HistogramDx > | sharedDx (const size_t index) const |
void | setSharedX (const size_t index, const Kernel::cow_ptr< HistogramData::HistogramX > &x) & |
void | setSharedDx (const size_t index, const Kernel::cow_ptr< HistogramData::HistogramDx > &dx) & |
void | setSharedY (const size_t index, const Kernel::cow_ptr< HistogramData::HistogramY > &y) & |
void | setSharedE (const size_t index, const Kernel::cow_ptr< HistogramData::HistogramE > &e) & |
const MantidVec & | readX (std::size_t const index) const |
Deprecated, use x() instead. More... | |
const MantidVec & | readY (std::size_t const index) const |
Deprecated, use y() instead. More... | |
const MantidVec & | readE (std::size_t const index) const |
Deprecated, use e() instead. More... | |
const MantidVec & | readDx (size_t const index) const |
Deprecated, use dx() instead. More... | |
virtual MantidVec & | dataX (const std::size_t index) |
Deprecated, use mutableX() instead. Returns the x data. More... | |
virtual MantidVec & | dataY (const std::size_t index) |
Deprecated, use mutableY() instead. Returns the y data. More... | |
virtual MantidVec & | dataE (const std::size_t index) |
Deprecated, use mutableE() instead. Returns the error data. More... | |
virtual MantidVec & | dataDx (const std::size_t index) |
Deprecated, use mutableDx() instead. Returns the x error data. More... | |
virtual const MantidVec & | dataX (const std::size_t index) const |
Deprecated, use x() instead. Returns the x data const. More... | |
virtual const MantidVec & | dataY (const std::size_t index) const |
Deprecated, use y() instead. Returns the y data const. More... | |
virtual const MantidVec & | dataE (const std::size_t index) const |
Deprecated, use e() instead. Returns the error const. More... | |
virtual const MantidVec & | dataDx (const std::size_t index) const |
Deprecated, use dx() instead. Returns the error const. More... | |
virtual double | getXMin () const |
virtual double | getXMax () const |
virtual void | getXMinMax (double &xmin, double &xmax) const |
virtual Kernel::cow_ptr< HistogramData::HistogramX > | refX (const std::size_t index) const |
Deprecated, use sharedX() instead. Returns a pointer to the x data. More... | |
virtual void | setX (const std::size_t index, const Kernel::cow_ptr< HistogramData::HistogramX > &X) |
Deprecated, use setSharedX() instead. More... | |
virtual void | setX (const std::size_t index, const std::shared_ptr< HistogramData::HistogramX > &X) |
Deprecated, use setSharedX() instead. More... | |
virtual bool | hasDx (const std::size_t index) const |
Probes if DX (X Error) values were set on a particular spectrum. More... | |
virtual void | getIntegratedSpectra (std::vector< double > &out, const double minX, const double maxX, const bool entireRange) const |
Return a vector with the integrated counts for all spectra withing the given range. More... | |
std::pair< size_t, double > | getXIndex (size_t i, double x, bool isLeft=true, size_t start=0) const |
Return an index in the X vector for an x-value close to a given value. More... | |
int | axes () const |
virtual Axis * | getAxis (const std::size_t &axisIndex) const |
Get a non owning pointer to a workspace axis. More... | |
void | replaceAxis (const std::size_t &axisIndex, std::unique_ptr< Axis > newAxis) |
Replaces one of the workspace's axes with the new one provided. More... | |
size_t | numberOfAxis () const |
Will return the number of Axis currently stored in the workspace it is not always safe to assume it is just 2. More... | |
virtual bool | isCommonLogBins () const |
Returns true if the workspace contains common X bins with log spacing. More... | |
virtual bool | isHistogramData () const |
Returns true if the workspace contains data in histogram form (as opposed to point-like) More... | |
virtual bool | isCommonBins () const |
Returns true if the workspace contains common X bins. More... | |
virtual bool | isIntegerBins () const |
Returns true if the workspace has common, integer X bins. More... | |
std::string | YUnit () const |
Returns the units of the data in the workspace. More... | |
void | setYUnit (const std::string &newUnit) |
Sets a new unit for the data (Y axis) in the workspace. More... | |
std::string | YUnitLabel (bool useLatex=false, bool plotAsDistribution=false) const |
Returns a caption for the units of the data in the workspace. More... | |
void | setYUnitLabel (const std::string &newLabel) |
Sets a new caption for the data (Y axis) in the workspace. More... | |
bool | isDistribution () const |
Are the Y-values dimensioned? More... | |
void | setDistribution (bool newValue) |
Set the flag for whether the Y-values are dimensioned. More... | |
void | maskBin (const size_t &workspaceIndex, const size_t &binIndex, const double &weight=1.0) |
Called by the algorithm MaskBins to mask a single bin for the first time, algorithms that later propagate the the mask from an input to the output should call flagMasked() instead. More... | |
void | flagMasked (const size_t &index, const size_t &binIndex, const double &weight=1.0) |
Writes the masking weight to m_masks (doesn't alter y-values). More... | |
bool | hasMaskedBins (const size_t &workspaceIndex) const |
Does this spectrum contain any masked bins. More... | |
bool | hasAnyMaskedBins () const |
Does this workspace contain any masked bins. More... | |
const MaskList & | maskedBins (const size_t &workspaceIndex) const |
Returns the list of masked bins for a spectrum. More... | |
std::vector< size_t > | maskedBinsIndices (const size_t &workspaceIndex) const |
void | setMaskedBins (const size_t workspaceIndex, const MaskList &maskedBins) |
Set the list of masked bins for given workspaceIndex. More... | |
void | setUnmaskedBins (const size_t workspaceIndex) |
Removes the mask from an index. More... | |
virtual void | setMonitorWorkspace (const std::shared_ptr< MatrixWorkspace > &monitorWS) |
Sets the internal monitor workspace to the provided workspace. More... | |
std::shared_ptr< MatrixWorkspace > | monitorWorkspace () const |
Returns a pointer to the internal monitor workspace. More... | |
void | loadInstrumentNexus (::NeXus::File *file) |
size_t | getNumDims () const override |
std::shared_ptr< const Mantid::Geometry::IMDDimension > | getDimension (size_t index) const override |
Get a dimension. More... | |
std::shared_ptr< const Mantid::Geometry::IMDDimension > | getDimensionWithId (std::string id) const override |
Get a dimension. More... | |
uint64_t | getNPoints () const override |
Gets the number of points available on the workspace. More... | |
uint64_t | getNEvents () const override |
Get the number of points available on the workspace. More... | |
LinePlot | getLinePlot (const Mantid::Kernel::VMD &start, const Mantid::Kernel::VMD &end, Mantid::API::MDNormalization normalize) const override |
Generate a line plot through the matrix workspace. More... | |
signal_t | getSignalAtCoord (const coord_t *coords, const Mantid::API::MDNormalization &normalization) const override |
Get the signal at a coordinate in the workspace. More... | |
signal_t | getSignalWithMaskAtCoord (const coord_t *coords, const Mantid::API::MDNormalization &normalization) const override |
Get the signal at a coordinate in the workspace. More... | |
std::vector< std::unique_ptr< IMDIterator > > | createIterators (size_t suggestedNumCores=1, Mantid::Geometry::MDImplicitFunction *function=nullptr) const override |
Create iterators. More... | |
void | setMDMasking (std::unique_ptr< Mantid::Geometry::MDImplicitFunction > maskingRegion) override |
Apply masking. More... | |
void | clearMDMasking () override |
Clear exsting masking. More... | |
Mantid::Kernel::SpecialCoordinateSystem | getSpecialCoordinateSystem () const override |
virtual bool | hasOrientedLattice () const override |
virtual std::pair< int64_t, int64_t > | findY (double value, const std::pair< int64_t, int64_t > &idx={0, 0}) const |
Find first index in Y equal to value. More... | |
std::pair< size_t, size_t > | getImageStartEndXIndices (size_t i, double startX, double endX) const |
Get start and end x indices for images. More... | |
MantidImage_sptr | getImageY (size_t start=0, size_t stop=0, size_t width=0, double startX=EMPTY_DBL(), double endX=EMPTY_DBL()) const |
Create an image of Ys. More... | |
MantidImage_sptr | getImageE (size_t start=0, size_t stop=0, size_t width=0, double startX=EMPTY_DBL(), double endX=EMPTY_DBL()) const |
Create an image of Es. More... | |
void | invalidateCachedSpectrumNumbers () |
void | invalidateCommonBinsFlag () |
Invalidates the commons bins flag. More... | |
Public Member Functions inherited from Mantid::API::IMDWorkspace | |
std::string | changeQConvention () |
virtual void | clearFileBacked (bool) |
if a workspace was filebacked, this should clear file-based status, delete file-based information and close related files. More... | |
virtual void | clearMDMasking ()=0 |
Clear existing masks. More... | |
std::unique_ptr< IMDWorkspace > | clone () const |
Returns a clone of the workspace. More... | |
std::unique_ptr< IMDWorkspace > | cloneEmpty () const |
Returns a default-initialized clone of the workspace. More... | |
std::unique_ptr< IMDIterator > | createIterator (Mantid::Geometry::MDImplicitFunction *function=nullptr) const |
Creates a single iterator and returns it. More... | |
virtual std::vector< std::unique_ptr< IMDIterator > > | createIterators (size_t suggestedNumCores=1, Mantid::Geometry::MDImplicitFunction *function=nullptr) const =0 |
Creates a new iterator pointing to the first cell in the workspace. More... | |
virtual MDNormalization | displayNormalization () const |
virtual MDNormalization | displayNormalizationHisto () const |
std::string | getConvention () const |
virtual LinePlot | getLinePlot (const Mantid::Kernel::VMD &start, const Mantid::Kernel::VMD &end, Mantid::API::MDNormalization normalize) const |
Method to generate a line plot through a MD-workspace. More... | |
virtual uint64_t | getNEvents () const =0 |
virtual uint64_t | getNPoints () const =0 |
Get the number of points associated with the workspace. More... | |
virtual signal_t | getSignalAtCoord (const coord_t *coords, const Mantid::API::MDNormalization &normalization) const =0 |
Returns the (normalized) signal at a given coordinates. More... | |
signal_t | getSignalAtVMD (const Mantid::Kernel::VMD &coords, const Mantid::API::MDNormalization &normalization=Mantid::API::VolumeNormalization) const |
Returns the signal (normalized by volume) at a given coordinates. More... | |
virtual signal_t | getSignalWithMaskAtCoord (const coord_t *coords, const Mantid::API::MDNormalization &normalization) const =0 |
Returns the (normalized) signal at a given coordinates or 0 if the value. More... | |
signal_t | getSignalWithMaskAtVMD (const Mantid::Kernel::VMD &coords, const Mantid::API::MDNormalization &normalization=Mantid::API::VolumeNormalization) const |
Returns the signal (normalized by volume) at a given coordinates or 0 if masked. More... | |
virtual Kernel::SpecialCoordinateSystem | getSpecialCoordinateSystem () const =0 |
virtual bool | hasOrientedLattice () const =0 |
IMDWorkspace (const Parallel::StorageMode storageMode=Parallel::StorageMode::Cloned) | |
Default constructor. More... | |
virtual bool | isMDHistoWorkspace () const |
virtual ITableWorkspace_sptr | makeBoxTable (size_t, size_t) |
this is the method to build table workspace from any workspace. More... | |
IMDWorkspace & | operator= (const IMDWorkspace &other)=delete |
void | setConvention (std::string convention) |
virtual void | setMDMasking (std::unique_ptr< Mantid::Geometry::MDImplicitFunction > maskingRegion)=0 |
Setter for the masking region. More... | |
Public Member Functions inherited from Mantid::API::Workspace | |
Workspace_uptr | clone () const |
Returns a clone (copy) of the workspace with covariant return type in all derived classes. More... | |
Workspace_uptr | cloneEmpty () const |
Returns a default-initialized clone of the workspace. More... | |
const std::string & | getComment () const |
Get the workspace comment. More... | |
const WorkspaceHistory & | getHistory () const |
Returns a reference to the WorkspaceHistory const. More... | |
virtual size_t | getMemorySize () const =0 |
Get the footprint in memory in bytes. More... | |
std::string | getMemorySizeAsStr () const |
Returns the memory footprint in sensible units. More... | |
const std::string & | getName () const override |
Get the workspace name. More... | |
virtual const std::string | getTitle () const |
Get the workspace title. More... | |
WorkspaceHistory & | history () |
Returns a reference to the WorkspaceHistory. More... | |
bool | isDirty (const int n=1) const |
Check whether other algorithms have been applied to the workspace by checking the history length. More... | |
virtual bool | isGroup () const |
Workspace & | operator= (const Workspace &other)=delete |
void | setComment (const std::string &) |
Set the comment field of the workspace. More... | |
virtual void | setTitle (const std::string &) |
Set the title of the workspace. More... | |
Parallel::StorageMode | storageMode () const |
Returns the storage mode (used for MPI runs) More... | |
bool | threadSafe () const override |
Marks the workspace as safe for multiple threads to edit data simutaneously. More... | |
Workspace (const Parallel::StorageMode storageMode=Parallel::StorageMode::Cloned) | |
~Workspace () | |
Public Member Functions inherited from Mantid::Kernel::DataItem | |
DataItem () | |
Default constructor. More... | |
DataItem (const DataItem &other) | |
Copy constructor Always makes a unique lock. More... | |
virtual | ~DataItem () |
Destructor. More... | |
void | readLock () |
Acquires a read lock. More... | |
void | unlock () |
Public Member Functions inherited from Mantid::API::MDGeometry | |
void | addDimension (const std::shared_ptr< Mantid::Geometry::IMDDimension > &dim) |
Add a dimension. More... | |
void | addDimension (Mantid::Geometry::IMDDimension *dim) |
Add a dimension. More... | |
bool | allBasisNormalized () const |
void | clearOriginalWorkspaces () |
Clear original workspaces. More... | |
void | clearTransforms () |
Clear transforms. More... | |
virtual std::vector< coord_t > | estimateResolution () const |
Mantid::Kernel::VMD & | getBasisVector (size_t index) |
Get the basis vector (in the original workspace) for a dimension of this workspace. More... | |
const Mantid::Kernel::VMD & | getBasisVector (size_t index) const |
Get the basis vector (in the original workspace) for a dimension of this workspace. More... | |
virtual std::shared_ptr< const Mantid::Geometry::IMDDimension > | getDimension (size_t index) const |
Get a dimension. More... | |
size_t | getDimensionIndexById (const std::string &id) const |
Get the index of the dimension that matches the ID given. More... | |
size_t | getDimensionIndexByName (const std::string &name) const |
Get the index of the dimension that matches the name given. More... | |
virtual std::shared_ptr< const Mantid::Geometry::IMDDimension > | getDimensionWithId (std::string id) const |
Get a dimension. More... | |
std::string | getGeometryXML () const |
std::vector< std::shared_ptr< const Geometry::IMDDimension > > | getNonIntegratedDimensions () const |
Get non-collapsed dimensions. More... | |
size_t | getNumberTransformsFromOriginal () const |
Get the number of transforms defined from the original coordinate system. More... | |
size_t | getNumberTransformsToOriginal () const |
Get the number of transforms defined to the original coordinate system. More... | |
virtual size_t | getNumDims () const |
virtual size_t | getNumNonIntegratedDims () const |
Mantid::Kernel::VMD & | getOrigin () |
const Mantid::Kernel::VMD & | getOrigin () const |
std::shared_ptr< Workspace > | getOriginalWorkspace (size_t index=0) const |
Get the "original" workspace (the workspace that was the source for a binned MDWorkspace). More... | |
std::shared_ptr< const Mantid::Geometry::IMDDimension > | getTDimension () const |
Get the t-dimension mapping. More... | |
Mantid::API::CoordTransform const * | getTransformFromOriginal (size_t index=0) const |
Get the Coordinate Transformation that goes from the original workspace to this workspace's coordinates. More... | |
Mantid::API::CoordTransform const * | getTransformToOriginal (size_t index=0) const |
Get the Coordinate Transformation that goes from THIS workspace's coordinates to the ORIGINAL workspace's coordinates. More... | |
const Kernel::DblMatrix & | getWTransf () const |
get the transformation from Qin crystal cartezian coordinate system to Q in orthogonal or real HKL coordiate system alined with arbitrary slicing plane More... | |
std::shared_ptr< const Mantid::Geometry::IMDDimension > | getXDimension () const |
Get the x-dimension mapping. More... | |
std::shared_ptr< const Mantid::Geometry::IMDDimension > | getYDimension () const |
Get the y-dimension mapping. More... | |
std::shared_ptr< const Mantid::Geometry::IMDDimension > | getZDimension () const |
Get the z-dimension mapping. More... | |
bool | hasOriginalWorkspace (size_t index=0) const |
void | initGeometry (const std::vector< std::shared_ptr< Geometry::IMDDimension > > &dimensions) |
Initialize the geometry. More... | |
MDGeometry () | |
Constructor. More... | |
MDGeometry (const MDGeometry &other) | |
Copy Constructor. More... | |
size_t | numOriginalWorkspaces () const |
MDGeometry & | operator= (const MDGeometry &other) |
void | setBasisVector (size_t index, const Mantid::Kernel::VMD &vec) |
Set the basis vector (in the original workspace) for a dimension of this workspace. More... | |
void | setOrigin (const Mantid::Kernel::VMD &orig) |
Sets the origin of this geometry. More... | |
void | setOriginalWorkspace (std::shared_ptr< Workspace > ws, size_t index=0) |
Set the "original" workspace (the workspace that was the source for a binned MDWorkspace). More... | |
void | setTransformFromOriginal (Mantid::API::CoordTransform *transform, size_t index=0) |
Sets the Coordinate Transformation that goes from the original workspace to this workspace's coordinates. More... | |
void | setTransformToOriginal (Mantid::API::CoordTransform *transform, size_t index=0) |
Sets the Coordinate Transformation that goes from THIS workspace's coordinates to the ORIGINAL workspace's coordinates. More... | |
void | setWTransf (const Kernel::DblMatrix &WTransf) |
set the transformation from Q in crystal cartezian coordinate system to Q in orthogonal or real HKL coordiate system alined with arbitrary slicing plane More... | |
void | transformDimensions (std::vector< double > &scaling, std::vector< double > &offset) |
Transform the dimensions contained in this geometry x' = x*scaling + offset. More... | |
virtual | ~MDGeometry () |
Destructor. More... | |
Public Member Functions inherited from Mantid::API::ExperimentInfo | |
virtual ExperimentInfo * | cloneExperimentInfo () const |
Clone us. More... | |
const Geometry::ComponentInfo & | componentInfo () const |
const Geometry::ParameterMap & | constInstrumentParameters () const |
Const version. More... | |
void | copyExperimentInfoFrom (const ExperimentInfo *other) |
Copy everything from the given experiment object. More... | |
const Geometry::DetectorInfo & | detectorInfo () const |
Return a const reference to the DetectorInfo object. More... | |
ExperimentInfo () | |
Default constructor. More... | |
ExperimentInfo (const ExperimentInfo &) | |
Copy constructor. More... | |
std::string | getAvailableWorkspaceEndDate () const |
Return workspace end date as a formatted string (strftime style, as returned by Kernel::DateAdnTime) string, if available. More... | |
std::string | getAvailableWorkspaceStartDate () const |
Return workspace start date as a formatted string (strftime, as returned by Types::Core::DateAndTime) string, if available. More... | |
double | getEFixed (const detid_t detID) const |
Easy access to the efixed value for this run & detector ID. More... | |
double | getEFixed (const std::shared_ptr< const Geometry::IDetector > &detector=std::shared_ptr< const Geometry::IDetector >{nullptr}) const |
Easy access to the efixed value for this run & optional detector. More... | |
double | getEFixedForIndirect (const std::shared_ptr< const Geometry::IDetector > &detector, const std::vector< std::string > ¶meterNames) const |
double | getEFixedGivenEMode (const std::shared_ptr< const Geometry::IDetector > &detector, const Kernel::DeltaEMode::Type emode) const |
Easy access to the efixed value for this run & detector. More... | |
Kernel::DeltaEMode::Type | getEMode () const |
Returns the emode for this run. More... | |
Geometry::Instrument_const_sptr | getInstrument () const |
Returns the parameterized instrument. More... | |
Kernel::Property * | getLog (const std::string &log) const |
Access a log for this experiment. More... | |
double | getLogAsSingleValue (const std::string &log) const |
Access a single value from a log for this experiment. More... | |
int | getRunNumber () const |
Utility method to get the run number. More... | |
std::string | getWorkspaceStartDate () const |
Returns the start date for this experiment (or current time if no info available) More... | |
Geometry::ParameterMap & | instrumentParameters () |
Returns a modifiable set of instrument parameters. More... | |
const Geometry::ParameterMap & | instrumentParameters () const |
Returns the set of parameters modifying the base instrument (const-version) More... | |
void | invalidateSpectrumDefinition (const size_t index) |
Notifies the ExperimentInfo that a spectrum definition has changed. More... | |
void | loadExperimentInfoNexus (const std::string &nxFilename, ::NeXus::File *file, std::string ¶meterStr) |
Loads an experiment description from the open NeXus file. More... | |
void | loadExperimentInfoNexus (const std::string &nxFilename, ::NeXus::File *file, std::string ¶meterStr, const Mantid::Kernel::NexusHDF5Descriptor &fileInfo, const std::string &prefix) |
void | loadInstrumentInfoNexus (const std::string &nxFilename, ::NeXus::File *file) |
Load the instrument from an open NeXus file without reading any parameters. More... | |
void | loadInstrumentInfoNexus (const std::string &nxFilename, ::NeXus::File *file, std::string ¶meterStr) |
Load the instrument from an open NeXus file. More... | |
void | loadInstrumentParametersNexus (::NeXus::File *file, std::string ¶meterStr) |
Load instrument parameters from an open Nexus file in Instument group if found there. More... | |
void | loadSampleAndLogInfoNexus (::NeXus::File *file) |
Load the sample and log info from an open NeXus file. More... | |
void | loadSampleAndLogInfoNexus (::NeXus::File *file, const Mantid::Kernel::NexusHDF5Descriptor &fileInfo, const std::string &prefix) |
Load the sample and log info from an open NeXus file. More... | |
Geometry::ComponentInfo & | mutableComponentInfo () |
Geometry::DetectorInfo & | mutableDetectorInfo () |
Return a non-const reference to the DetectorInfo object. More... | |
Run & | mutableRun () |
Writable version of the run object. More... | |
Sample & | mutableSample () |
Writable version of the sample object. More... | |
SpectrumInfo & | mutableSpectrumInfo () |
Return a non-const reference to the SpectrumInfo object. More... | |
ExperimentInfo & | operator= (const ExperimentInfo &) |
Implements the copy assignment operator. More... | |
void | populateInstrumentParameters () |
Add parameters to the instrument parameter map that are defined in instrument definition file or parameter file, which may contain parameters that require logfile data to be available. More... | |
void | readParameterMap (const std::string ¶meterStr) |
Populate the parameter map given a string. More... | |
const Run & | run () const |
Run details object access. More... | |
const Sample & | sample () const |
Sample accessors. More... | |
void | saveExperimentInfoNexus (::NeXus::File *file, bool saveInstrument, bool saveSample, bool saveLogs) const |
Saves this experiment description to the open NeXus file. More... | |
void | saveExperimentInfoNexus (::NeXus::File *file, bool saveLegacyInstrument=true) const |
Saves this experiment description to the open NeXus file. More... | |
void | setDetectorGrouping (const size_t index, const std::set< detid_t > &detIDs) const |
Sets the detector grouping for the spectrum with the given index . More... | |
void | setEFixed (const detid_t detID, const double value) |
Set the efixed value for a given detector ID. More... | |
void | setInstrument (const Geometry::Instrument_const_sptr &instr) |
Instrument accessors. More... | |
void | setNumberOfDetectorGroups (const size_t count) const |
Sets the number of detector groups. More... | |
void | setSharedRun (Kernel::cow_ptr< Run > run) |
Set the run object. Use in particular to clear run without copying old run. More... | |
Kernel::cow_ptr< Run > | sharedRun () |
Return the cow ptr of the run. More... | |
const SpectrumInfo & | spectrumInfo () const |
Return a reference to the SpectrumInfo object. More... | |
const std::string | toString () const |
Returns a string description of the object. More... | |
void | updateSpectrumDefinitionIfNecessary (const size_t index) const |
virtual | ~ExperimentInfo () |
Virtual destructor. More... | |
Protected Member Functions | |
HistogramData::HistogramE | esq (const HistogramData::HistogramE &e) const |
Square the error values in a histogram. More... | |
HistogramData::HistogramE | esqrt (HistogramData::HistogramE e) const |
Square root the error values in a histogram. More... | |
Mantid::Geometry::IObject_sptr | makeCubeShape () |
Creates a rectangular cuboid shape. More... | |
HistogramData::HistogramY | secondDerivative (const std::array< size_t, 3 > indices, const double distanceStep) const |
Calculate the second derivative of a histogram along a row of indices. More... | |
SparseWorkspace (const SparseWorkspace &other) | |
Protected Member Functions inherited from Mantid::DataObjects::Workspace2D | |
void | init (const HistogramData::Histogram &histogram) override |
void | init (const std::size_t &NVectors, const std::size_t &XLength, const std::size_t &YLength) override |
Called by initialize() More... | |
Workspace2D (const Workspace2D &other) | |
Protected copy constructor. May be used by childs for cloning. More... | |
Protected Member Functions inherited from Mantid::API::MatrixWorkspace | |
MatrixWorkspace (const MatrixWorkspace &other) | |
Protected copy constructor. May be used by childs for cloning. More... | |
MatrixWorkspace (const Parallel::StorageMode storageMode=Parallel::StorageMode::Cloned) | |
Default constructor. More... | |
void | updateCachedDetectorGrouping (const size_t index) const override |
Update detector grouping for spectrum with given index. More... | |
std::string | getDimensionIdFromAxis (const int &axisIndex) const |
Getter for the dimension id based on the axis. More... | |
Protected Member Functions inherited from Mantid::API::IMDWorkspace | |
IMDWorkspace (const IMDWorkspace &)=default | |
Protected copy constructor. May be used by childs for cloning. More... | |
void | makeSinglePointWithNaN (std::vector< coord_t > &x, std::vector< signal_t > &y, std::vector< signal_t > &e) const |
Make a single point with NaN as the signal and error This can be returned when there would otherwise be nothing to plot. More... | |
const std::string | toString () const override |
Serializes the object to a string. More... | |
Protected Member Functions inherited from Mantid::API::Workspace | |
void | setStorageMode (Parallel::StorageMode mode) |
Sets the storage mode (used for MPI runs) More... | |
Workspace (const Workspace &) | |
Protected copy constructor. May be used by childs for cloning. More... | |
Protected Member Functions inherited from Mantid::Kernel::DataItem | |
Poco::RWLock * | getLock () const |
Private method to access the RWLock object. More... | |
Protected Member Functions inherited from Mantid::API::MDGeometry | |
void | deleteNotificationReceived (const std::shared_ptr< const Workspace > &deleted) |
Function called when observer objects recieves a notification. More... | |
Protected Member Functions inherited from Mantid::API::ExperimentInfo | |
size_t | numberOfDetectorGroups () const |
Returns the number of detector groups. More... | |
virtual void | populateIfNotLoaded () const |
Called as the first operation of most public methods. More... | |
void | setSpectrumDefinitions (Kernel::cow_ptr< std::vector< SpectrumDefinition > > spectrumDefinitions) |
Sets the SpectrumDefinition for all spectra. More... | |
virtual void | updateCachedDetectorGrouping (const size_t index) const |
Update detector grouping for spectrum with given index. More... | |
Static Protected Member Functions | |
static std::tuple< double, double, double, double > | extremeAngles (const API::MatrixWorkspace &ws) |
Find the latitude and longitude intervals the detectors of the given workspace span as seen from the sample. More... | |
static std::tuple< double, double > | extremeWavelengths (const API::MatrixWorkspace &ws) |
Find the maximum and minimum wavelength points over the entire workpace. More... | |
static double | greatCircleDistance (const double lat1, const double long1, const double lat2, const double long2) |
Calculate the distance between two points on a unit sphere. More... | |
static std::array< double, 4 > | inverseDistanceWeights (const std::array< double, 4 > &distances) |
Calculate the inverse distance weights for the given distances. More... | |
static HistogramData::Histogram | modelHistogram (const API::MatrixWorkspace &modelWS, const size_t wavelengthPoints) |
Create a template histogram for the sparse instrument workspace. More... | |
Protected Attributes | |
std::unique_ptr< Algorithms::DetectorGridDefinition > | m_gridDef |
Protected Attributes inherited from Mantid::DataObjects::Workspace2D | |
std::vector< std::unique_ptr< Histogram1D > > | data |
A vector that holds the 1D histograms. More... | |
std::vector< specnum_t > | m_monitorList |
a vector holding workspace index of monitors in the workspace More... | |
Protected Attributes inherited from Mantid::API::MatrixWorkspace | |
std::vector< std::unique_ptr< Axis > > | m_axes |
A vector of pointers to the axes for this workspace. More... | |
Protected Attributes inherited from Mantid::API::MDGeometry | |
std::vector< Mantid::Kernel::VMD > | m_basisVectors |
Vector of the basis vector (in the original workspace) for each dimension of this workspace. More... | |
std::vector< std::shared_ptr< Geometry::IMDDimension > > | m_dimensions |
Vector of the dimensions used, in the order X Y Z t, etc. More... | |
std::unique_ptr< MDGeometryNotificationHelper > | m_notificationHelper |
Helper that deals with notifications and observing the ADS. More... | |
Mantid::Kernel::VMD | m_origin |
Vector of the origin (in the original workspace) that corresponds to 0,0,0... in this workspace. More... | |
std::vector< std::shared_ptr< Workspace > > | m_originalWorkspaces |
Pointer to the original workspace(s), if this workspace is a coordinate transformation from an original workspace. More... | |
std::vector< std::shared_ptr< const Mantid::API::CoordTransform > > | m_transforms_FromOriginal |
Coordinate Transformation that goes from the original workspace to this workspace's coordinates. More... | |
std::vector< std::shared_ptr< const Mantid::API::CoordTransform > > | m_transforms_ToOriginal |
Coordinate Transformation that goes from this workspace's coordinates to the original workspace coordinates. More... | |
Kernel::DblMatrix | m_Wtransf |
the matrix which transforms momentums from orthogonal Q-system to Orthogonal HKL or non-orthogonal HKL system alighned WRT to arbitrary coordinate system requested See the UB matrix formalizm, pg 7 for further details on implementation. More... | |
Protected Attributes inherited from Mantid::API::ExperimentInfo | |
std::shared_ptr< Geometry::ParameterMap > | m_parmap |
Parameters modifying the base instrument. More... | |
Geometry::Instrument_const_sptr | sptr_instrument |
The base (unparametrized) instrument. More... | |
Private Member Functions | |
SparseWorkspace * | doClone () const override |
Virtual clone method. Not implemented to force implementation in children. More... | |
Additional Inherited Members | |
Public Types inherited from Mantid::API::MatrixWorkspace | |
using | MaskList = std::map< size_t, double > |
Masked bins for each spectrum are stored as a set of pairs containing <bin index, weight> More... | |
Static Public Attributes inherited from Mantid::API::MatrixWorkspace | |
static const std::string | xDimensionId = "xDimension" |
Dimension id for x-dimension. More... | |
static const std::string | yDimensionId = "yDimension" |
Dimensin id for y-dimension. More... | |
Defines functions and utilities to create and deal with sparse instruments.
Definition at line 36 of file SparseWorkspace.h.
Mantid::Algorithms::SparseWorkspace::SparseWorkspace | ( | const API::MatrixWorkspace & | modelWS, |
const size_t | wavelengthPoints, | ||
const size_t | rows, | ||
const size_t | columns | ||
) |
Definition at line 49 of file SparseWorkspace.cpp.
References Mantid::API::LogManager::addProperty(), Mantid::Kernel::DeltaEMode::asString(), Mantid::Geometry::DetectorInfo::detectorIDs(), Mantid::API::ExperimentInfo::detectorInfo(), Mantid::Kernel::DeltaEMode::Direct, Mantid::API::MatrixWorkspace::e(), extremeAngles(), Mantid::API::g_log, Mantid::API::ExperimentInfo::getEFixed(), Mantid::API::ExperimentInfo::getEMode(), Mantid::API::ExperimentInfo::getInstrument(), Mantid::DataObjects::Workspace2D::getSpectrum(), Mantid::PhysicalConstants::h, index, Mantid::Kernel::DeltaEMode::Indirect, Mantid::API::MatrixWorkspace::initialize(), Mantid::API::ExperimentInfo::instrumentParameters(), m_gridDef, makeCubeShape(), modelHistogram(), Mantid::API::ExperimentInfo::mutableRun(), Mantid::API::ExperimentInfo::sample(), Mantid::API::ISpectrum::setDetectorID(), Mantid::API::ExperimentInfo::setEFixed(), Mantid::API::ExperimentInfo::setInstrument(), and Mantid::Kernel::Logger::warning().
|
protected |
Definition at line 147 of file SparseWorkspace.cpp.
|
virtual |
Spatially interpolate a single histogram from nearby detectors using bilinear interpolation method.
Also calculate the resulting errors from: a) propagation of errors in the points b) interpolation error ie how well does the bilinear interpolation approximate the actual function
lat | Latitude of the interpolated detector. |
lon | Longitude of the interpolated detector. |
Definition at line 369 of file SparseWorkspace.cpp.
References Mantid::API::MatrixWorkspace::e(), esq(), esqrt(), Mantid::API::SpectrumInfo::geographicalAngles(), Mantid::PhysicalConstants::h, Mantid::API::MatrixWorkspace::histogram(), m_gridDef, secondDerivative(), Mantid::DataObjects::Workspace2D::size(), Mantid::API::ExperimentInfo::spectrumInfo(), and Mantid::Geometry::y.
Referenced by Mantid::Algorithms::DiscusMultipleScatteringCorrection::interpolateFromSparse(), and Mantid::Algorithms::MonteCarloAbsorption::interpolateFromSparse().
|
overrideprivatevirtual |
Virtual clone method. Not implemented to force implementation in children.
Implements Mantid::API::HistoWorkspace.
Definition at line 439 of file SparseWorkspace.cpp.
|
protected |
Square the error values in a histogram.
e | A HistgramE object |
Definition at line 349 of file SparseWorkspace.cpp.
References Mantid::API::MatrixWorkspace::e().
Referenced by bilinearInterpolateFromDetectorGrid().
|
protected |
Square root the error values in a histogram.
e | A HistgramE object |
Definition at line 355 of file SparseWorkspace.cpp.
References Mantid::API::MatrixWorkspace::e().
Referenced by bilinearInterpolateFromDetectorGrid().
|
staticprotected |
Find the latitude and longitude intervals the detectors of the given workspace span as seen from the sample.
Just do this for detectors that have a histogram in the ws
ws | A workspace. |
Definition at line 156 of file SparseWorkspace.cpp.
References Mantid::API::SpectrumInfo::geographicalAngles(), Mantid::API::MatrixWorkspace::getNumberHistograms(), Mantid::API::SpectrumInfo::hasDetectors(), and Mantid::API::ExperimentInfo::spectrumInfo().
Referenced by SparseWorkspace().
|
staticprotected |
Find the maximum and minimum wavelength points over the entire workpace.
ws | A workspace to investigate. |
Definition at line 187 of file SparseWorkspace.cpp.
References Mantid::API::MatrixWorkspace::getNumberHistograms(), Mantid::PhysicalConstants::h, and Mantid::API::MatrixWorkspace::histogram().
Referenced by modelHistogram().
|
staticprotected |
Calculate the distance between two points on a unit sphere.
lat1 | Latitude of the first point. |
long1 | Longitude of the first point. |
lat2 | Latitude of the second point. |
long2 | Longitude of the second point. |
Definition at line 276 of file SparseWorkspace.cpp.
Referenced by interpolateFromDetectorGrid().
|
virtual |
Spatially interpolate a single histogram from nearby detectors.
lat | Latitude of the interpolated detector. |
lon | Longitude of the interpolated detector. |
Definition at line 323 of file SparseWorkspace.cpp.
References Mantid::API::SpectrumInfo::geographicalAngles(), greatCircleDistance(), Mantid::PhysicalConstants::h, Mantid::API::MatrixWorkspace::histogram(), inverseDistanceWeights(), m_gridDef, Mantid::API::ExperimentInfo::spectrumInfo(), and Mantid::Geometry::y.
|
staticprotected |
Calculate the inverse distance weights for the given distances.
distances | The distances. |
Definition at line 288 of file SparseWorkspace.cpp.
Referenced by interpolateFromDetectorGrid().
|
protected |
Creates a rectangular cuboid shape.
Definition at line 231 of file SparseWorkspace.cpp.
References Mantid::Geometry::ShapeFactory::createShape(), and std::to_string().
Referenced by SparseWorkspace().
|
staticprotected |
Create a template histogram for the sparse instrument workspace.
modelWS | A workspace the sparse instrument is approximating. |
wavelengthPoints | Number of points in the output histogram. |
Definition at line 205 of file SparseWorkspace.cpp.
References extremeWavelengths(), and Mantid::PhysicalConstants::h.
Referenced by SparseWorkspace().
|
protected |
Calculate the second derivative of a histogram along a row of indices.
indices | List of detector indices |
distanceStep | The distance between detector indices |
Definition at line 306 of file SparseWorkspace.cpp.
References Mantid::DataObjects::Workspace2D::blocksize(), and Mantid::Geometry::y.
Referenced by bilinearInterpolateFromDetectorGrid().
|
protected |
Definition at line 45 of file SparseWorkspace.h.
Referenced by bilinearInterpolateFromDetectorGrid(), interpolateFromDetectorGrid(), and SparseWorkspace().