Mantid
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
Mantid::Algorithms::SparseWorkspace Class Reference

Defines functions and utilities to create and deal with sparse instruments. More...

#include <SparseWorkspace.h>

Inheritance diagram for Mantid::Algorithms::SparseWorkspace:
Mantid::DataObjects::Workspace2D Mantid::API::HistoWorkspace Mantid::API::MatrixWorkspace Mantid::API::IMDWorkspace Mantid::API::ExperimentInfo Mantid::API::Workspace Mantid::API::MDGeometry Mantid::Kernel::DataItem

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< Workspace2Dclone () const
 Returns a clone of the workspace. More...
 
std::unique_ptr< Workspace2DcloneEmpty () 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 Histogram1DgetSpectrum (const size_t index) const override
 Return const reference to Histogram1D at the given workspace index. More...
 
Histogram1DgetSpectrum (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...
 
Workspace2Doperator= (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< HistoWorkspaceclone () const
 Returns a clone of the workspace. More...
 
std::unique_ptr< HistoWorkspacecloneEmpty () 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...
 
MatrixWorkspaceoperator= (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::IDetectorgetDetector (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_tgetSpectraFromDetectorIDs (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 MantidVecreadX (std::size_t const index) const
 Deprecated, use x() instead. More...
 
const MantidVecreadY (std::size_t const index) const
 Deprecated, use y() instead. More...
 
const MantidVecreadE (std::size_t const index) const
 Deprecated, use e() instead. More...
 
const MantidVecreadDx (size_t const index) const
 Deprecated, use dx() instead. More...
 
virtual MantidVecdataX (const std::size_t index)
 Deprecated, use mutableX() instead. Returns the x data. More...
 
virtual MantidVecdataY (const std::size_t index)
 Deprecated, use mutableY() instead. Returns the y data. More...
 
virtual MantidVecdataE (const std::size_t index)
 Deprecated, use mutableE() instead. Returns the error data. More...
 
virtual MantidVecdataDx (const std::size_t index)
 Deprecated, use mutableDx() instead. Returns the x error data. More...
 
virtual const MantidVecdataX (const std::size_t index) const
 Deprecated, use x() instead. Returns the x data const. More...
 
virtual const MantidVecdataY (const std::size_t index) const
 Deprecated, use y() instead. Returns the y data const. More...
 
virtual const MantidVecdataE (const std::size_t index) const
 Deprecated, use e() instead. Returns the error const. More...
 
virtual const MantidVecdataDx (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 AxisgetAxis (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 MaskListmaskedBins (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< MatrixWorkspacemonitorWorkspace () 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::IMDDimensiongetDimension (size_t index) const override
 Get a dimension. More...
 
std::shared_ptr< const Mantid::Geometry::IMDDimensiongetDimensionWithId (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< IMDWorkspaceclone () const
 Returns a clone of the workspace. More...
 
std::unique_ptr< IMDWorkspacecloneEmpty () const
 Returns a default-initialized clone of the workspace. More...
 
std::unique_ptr< IMDIteratorcreateIterator (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...
 
IMDWorkspaceoperator= (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 WorkspaceHistorygetHistory () 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...
 
WorkspaceHistoryhistory ()
 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
 
Workspaceoperator= (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_testimateResolution () const
 
Mantid::Kernel::VMDgetBasisVector (size_t index)
 Get the basis vector (in the original workspace) for a dimension of this workspace. More...
 
const Mantid::Kernel::VMDgetBasisVector (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::IMDDimensiongetDimension (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::IMDDimensiongetDimensionWithId (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::VMDgetOrigin ()
 
const Mantid::Kernel::VMDgetOrigin () const
 
std::shared_ptr< WorkspacegetOriginalWorkspace (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::IMDDimensiongetTDimension () 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::DblMatrixgetWTransf () 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::IMDDimensiongetXDimension () const
 Get the x-dimension mapping. More...
 
std::shared_ptr< const Mantid::Geometry::IMDDimensiongetYDimension () const
 Get the y-dimension mapping. More...
 
std::shared_ptr< const Mantid::Geometry::IMDDimensiongetZDimension () 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
 
MDGeometryoperator= (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 ExperimentInfocloneExperimentInfo () const
 Clone us. More...
 
const Geometry::ComponentInfocomponentInfo () const
 
const Geometry::ParameterMapconstInstrumentParameters () const
 Const version. More...
 
void copyExperimentInfoFrom (const ExperimentInfo *other)
 Copy everything from the given experiment object. More...
 
const Geometry::DetectorInfodetectorInfo () 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 > &parameterNames) 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::PropertygetLog (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::ParameterMapinstrumentParameters ()
 Returns a modifiable set of instrument parameters. More...
 
const Geometry::ParameterMapinstrumentParameters () 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 &parameterStr)
 Loads an experiment description from the open NeXus file. More...
 
void loadExperimentInfoNexus (const std::string &nxFilename, ::NeXus::File *file, std::string &parameterStr, 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 &parameterStr)
 Load the instrument from an open NeXus file. More...
 
void loadInstrumentParametersNexus (::NeXus::File *file, std::string &parameterStr)
 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::ComponentInfomutableComponentInfo ()
 
Geometry::DetectorInfomutableDetectorInfo ()
 Return a non-const reference to the DetectorInfo object. More...
 
RunmutableRun ()
 Writable version of the run object. More...
 
SamplemutableSample ()
 Writable version of the sample object. More...
 
SpectrumInfomutableSpectrumInfo ()
 Return a non-const reference to the SpectrumInfo object. More...
 
ExperimentInfooperator= (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 &parameterStr)
 Populate the parameter map given a string. More...
 
const Runrun () const
 Run details object access. More...
 
const Samplesample () 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< RunsharedRun ()
 Return the cow ptr of the run. More...
 
const SpectrumInfospectrumInfo () 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::DetectorGridDefinitionm_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_tm_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::VMDm_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< MDGeometryNotificationHelperm_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::ParameterMapm_parmap
 Parameters modifying the base instrument. More...
 
Geometry::Instrument_const_sptr sptr_instrument
 The base (unparametrized) instrument. More...
 

Private Member Functions

SparseWorkspacedoClone () 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...
 

Detailed Description

Defines functions and utilities to create and deal with sparse instruments.

Definition at line 36 of file SparseWorkspace.h.

Constructor & Destructor Documentation

◆ SparseWorkspace() [1/2]

Mantid::Algorithms::SparseWorkspace::SparseWorkspace ( const API::MatrixWorkspace modelWS,
const size_t  wavelengthPoints,
const size_t  rows,
const size_t  columns 
)

◆ SparseWorkspace() [2/2]

Mantid::Algorithms::SparseWorkspace::SparseWorkspace ( const SparseWorkspace other)
protected

Definition at line 147 of file SparseWorkspace.cpp.

Member Function Documentation

◆ bilinearInterpolateFromDetectorGrid()

HistogramData::Histogram Mantid::Algorithms::SparseWorkspace::bilinearInterpolateFromDetectorGrid ( const double  lat,
const double  lon 
) const
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

Parameters
latLatitude of the interpolated detector.
lonLongitude of the interpolated detector.
Returns
An interpolated histogram.

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().

◆ doClone()

SparseWorkspace * Mantid::Algorithms::SparseWorkspace::doClone ( ) const
overrideprivatevirtual

Virtual clone method. Not implemented to force implementation in children.

Implements Mantid::API::HistoWorkspace.

Definition at line 439 of file SparseWorkspace.cpp.

◆ esq()

HistogramData::HistogramE Mantid::Algorithms::SparseWorkspace::esq ( const HistogramData::HistogramE &  e) const
protected

Square the error values in a histogram.

Parameters
eA HistgramE object
Returns
A HistogramE object containing the squared values

Definition at line 349 of file SparseWorkspace.cpp.

References Mantid::API::MatrixWorkspace::e().

Referenced by bilinearInterpolateFromDetectorGrid().

◆ esqrt()

HistogramData::HistogramE Mantid::Algorithms::SparseWorkspace::esqrt ( HistogramData::HistogramE  e) const
protected

Square root the error values in a histogram.

Parameters
eA HistgramE object
Returns
A HistogramE object containing the square root values

Definition at line 355 of file SparseWorkspace.cpp.

References Mantid::API::MatrixWorkspace::e().

Referenced by bilinearInterpolateFromDetectorGrid().

◆ extremeAngles()

std::tuple< double, double, double, double > Mantid::Algorithms::SparseWorkspace::extremeAngles ( const API::MatrixWorkspace ws)
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

Parameters
wsA workspace.
Returns
A tuple containing the latitude and longitude ranges.

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().

◆ extremeWavelengths()

std::tuple< double, double > Mantid::Algorithms::SparseWorkspace::extremeWavelengths ( const API::MatrixWorkspace ws)
staticprotected

Find the maximum and minimum wavelength points over the entire workpace.

Parameters
wsA workspace to investigate.
Returns
A tuple containing the wavelength range.

Definition at line 187 of file SparseWorkspace.cpp.

References Mantid::API::MatrixWorkspace::getNumberHistograms(), Mantid::PhysicalConstants::h, and Mantid::API::MatrixWorkspace::histogram().

Referenced by modelHistogram().

◆ greatCircleDistance()

double Mantid::Algorithms::SparseWorkspace::greatCircleDistance ( const double  lat1,
const double  long1,
const double  lat2,
const double  long2 
)
staticprotected

Calculate the distance between two points on a unit sphere.

Parameters
lat1Latitude of the first point.
long1Longitude of the first point.
lat2Latitude of the second point.
long2Longitude of the second point.
Returns
The distance between the points.

Definition at line 276 of file SparseWorkspace.cpp.

Referenced by interpolateFromDetectorGrid().

◆ interpolateFromDetectorGrid()

HistogramData::Histogram Mantid::Algorithms::SparseWorkspace::interpolateFromDetectorGrid ( const double  lat,
const double  lon 
) const
virtual

Spatially interpolate a single histogram from nearby detectors.

Parameters
latLatitude of the interpolated detector.
lonLongitude of the interpolated detector.
Returns
An interpolated histogram.

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.

◆ inverseDistanceWeights()

std::array< double, 4 > Mantid::Algorithms::SparseWorkspace::inverseDistanceWeights ( const std::array< double, 4 > &  distances)
staticprotected

Calculate the inverse distance weights for the given distances.

Parameters
distancesThe distances.
Returns
An array of inverse distance weights.

Definition at line 288 of file SparseWorkspace.cpp.

Referenced by interpolateFromDetectorGrid().

◆ makeCubeShape()

Geometry::IObject_sptr Mantid::Algorithms::SparseWorkspace::makeCubeShape ( )
protected

Creates a rectangular cuboid shape.

Returns
A cube shape.

Definition at line 231 of file SparseWorkspace.cpp.

References Mantid::Geometry::ShapeFactory::createShape(), and std::to_string().

Referenced by SparseWorkspace().

◆ modelHistogram()

Mantid::HistogramData::Histogram Mantid::Algorithms::SparseWorkspace::modelHistogram ( const API::MatrixWorkspace modelWS,
const size_t  wavelengthPoints 
)
staticprotected

Create a template histogram for the sparse instrument workspace.

Parameters
modelWSA workspace the sparse instrument is approximating.
wavelengthPointsNumber of points in the output histogram.
Returns
A template histogram.

Definition at line 205 of file SparseWorkspace.cpp.

References extremeWavelengths(), and Mantid::PhysicalConstants::h.

Referenced by SparseWorkspace().

◆ secondDerivative()

HistogramData::HistogramY Mantid::Algorithms::SparseWorkspace::secondDerivative ( const std::array< size_t, 3 >  indices,
const double  distanceStep 
) const
protected

Calculate the second derivative of a histogram along a row of indices.

Parameters
indicesList of detector indices
distanceStepThe distance between detector indices
Returns
An interpolated histogram.

Definition at line 306 of file SparseWorkspace.cpp.

References Mantid::DataObjects::Workspace2D::blocksize(), and Mantid::Geometry::y.

Referenced by bilinearInterpolateFromDetectorGrid().

Member Data Documentation

◆ m_gridDef

std::unique_ptr<Algorithms::DetectorGridDefinition> Mantid::Algorithms::SparseWorkspace::m_gridDef
protected

The documentation for this class was generated from the following files: