9#include "MantidAPI/DllConfig.h"
25class MDGeometryNotificationHelper;
43 void initGeometry(
const std::vector<std::shared_ptr<Geometry::IMDDimension>> &dimensions);
48 virtual size_t getNumDims()
const;
49 virtual size_t getNumNonIntegratedDims()
const;
50 virtual std::shared_ptr<const Mantid::Geometry::IMDDimension> getDimension(
size_t index)
const;
51 virtual std::shared_ptr<const Mantid::Geometry::IMDDimension> getDimensionWithId(std::string
id)
const;
52 size_t getDimensionIndexByName(
const std::string &name)
const;
53 size_t getDimensionIndexById(
const std::string &
id)
const;
54 std::vector<std::shared_ptr<const Geometry::IMDDimension>> getNonIntegratedDimensions()
const;
55 virtual std::vector<coord_t> estimateResolution()
const;
58 std::shared_ptr<const Mantid::Geometry::IMDDimension> getXDimension()
const;
59 std::shared_ptr<const Mantid::Geometry::IMDDimension> getYDimension()
const;
60 std::shared_ptr<const Mantid::Geometry::IMDDimension> getZDimension()
const;
61 std::shared_ptr<const Mantid::Geometry::IMDDimension> getTDimension()
const;
63 std::string getGeometryXML()
const;
65 void addDimension(
const std::shared_ptr<Mantid::Geometry::IMDDimension> &dim);
72 bool allBasisNormalized()
const;
75 bool hasOriginalWorkspace(
size_t index = 0)
const;
76 size_t numOriginalWorkspaces()
const;
77 std::shared_ptr<Workspace> getOriginalWorkspace(
size_t index = 0)
const;
78 void setOriginalWorkspace(std::shared_ptr<Workspace> ws,
size_t index = 0);
84 void transformDimensions(std::vector<double> &scaling, std::vector<double> &offset);
86 size_t getNumberTransformsToOriginal()
const;
87 size_t getNumberTransformsFromOriginal()
const;
112 void clearTransforms();
114 void clearOriginalWorkspaces();
120 void deleteNotificationReceived(
const std::shared_ptr<const Workspace> &deleted);
std::map< DeltaEMode::Type, std::string > index
Describes the geometry (i.e.
Kernel::DblMatrix m_Wtransf
the matrix which transforms momentums from orthogonal Q-system to Orthogonal HKL or non-orthogonal HK...
Mantid::Kernel::VMD & getOrigin()
std::vector< Mantid::Kernel::VMD > m_basisVectors
Vector of the basis vector (in the original workspace) for each dimension of this workspace.
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.
Mantid::Kernel::VMD m_origin
Vector of the origin (in the original workspace) that corresponds to 0,0,0... in this workspace.
const Mantid::Kernel::VMD & getOrigin() const
std::vector< std::shared_ptr< Geometry::IMDDimension > > m_dimensions
Vector of the dimensions used, in the order X Y Z t, etc.
void setOrigin(const Mantid::Kernel::VMD &orig)
Sets the origin of this geometry.
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 coord...
const Kernel::DblMatrix & getWTransf() const
get the transformation from Qin crystal cartezian coordinate system to Q in orthogonal or real HKL co...
std::vector< std::shared_ptr< Workspace > > m_originalWorkspaces
Pointer to the original workspace(s), if this workspace is a coordinate transformation from an origin...
void setWTransf(const Kernel::DblMatrix &WTransf)
set the transformation from Q in crystal cartezian coordinate system to Q in orthogonal or real HKL c...
std::unique_ptr< MDGeometryNotificationHelper > m_notificationHelper
Helper that deals with notifications and observing the ADS.
The class describes one dimension of multidimensional dataset representing an orthogonal dimension an...
Helper class which provides the Collimation Length for SANS instruments.