9#include "MantidBeamline/ComponentType.h"
10#include "MantidBeamline/PixelGridComponent.h"
11#include "MantidGeometry/DllConfig.h"
13#include <Eigen/Geometry>
14#include <Eigen/StdVector>
18#include <unordered_map>
38class RectangularDetector;
68 std::shared_ptr<std::vector<std::vector<size_t>>>
m_children;
89 std::shared_ptr<std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond>>>
m_rotations;
92 std::shared_ptr<std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond>>>
m_detectorRotations;
110 int64_t m_sourceIndex = -1;
113 int64_t m_sampleIndex = -1;
119 std::shared_ptr<std::vector<std::shared_ptr<const Mantid::Geometry::IObject>>>
m_shapes;
128 std::shared_ptr<std::vector<std::string>>
m_names;
138 std::pair<std::unique_ptr<ComponentInfo>, std::unique_ptr<DetectorInfo>> makeWrappers()
const;
141 std::shared_ptr<ParameterInfo> makeParameterInfo()
const;
149 void walkInstrument();
163 virtual size_t registerInfiniteObjComponent(
const IObjComponent &objComponent)
override;
171 std::shared_ptr<const std::vector<Mantid::Geometry::IComponent *>> componentIds()
const;
173 std::shared_ptr<const std::unordered_map<Mantid::Geometry::IComponent const *, size_t>> componentIdToIndexMap()
const;
175 std::shared_ptr<const std::unordered_map<detid_t, size_t>> detectorIdToIndexMap()
const;
178 bool isEmpty()
const;
180 std::unique_ptr<Beamline::ComponentInfo> componentInfo()
const;
181 std::unique_ptr<Beamline::DetectorInfo> detectorInfo()
const;
183 std::shared_ptr<std::vector<detid_t>> detectorIds()
const;
185 static std::pair<std::unique_ptr<ComponentInfo>, std::unique_ptr<DetectorInfo>>
double obj
the value of the quadratic function
ComponentVisitor : Visitor for IComponents.
Class for Assembly of geometric components.
base class for Geometric IComponent
Interface class for detector objects.
Object Component class, this class brings together the physical attributes of the component to the po...
InstrumentVisitor : Visitor for components with access to Info wrapping features.
std::shared_ptr< std::vector< std::pair< size_t, size_t > > > m_detectorRanges
Only Assemblies and other NON-detectors yield detector ranges.
std::shared_ptr< const std::unordered_map< detid_t, size_t > > m_detectorIdToIndexMap
Detector ID -> index mappings.
std::shared_ptr< std::vector< size_t > > m_assemblySortedComponentIndices
Component indexes sorted by assembly.
Mantid::Geometry::ParameterMap * m_pmap
Parameter map to purge.
std::shared_ptr< std::vector< detid_t > > m_orderedDetectorIds
Detector indices.
std::shared_ptr< const Mantid::Geometry::IObject > m_nullShape
Null shared (empty shape)
std::shared_ptr< std::vector< Eigen::Quaterniond, Eigen::aligned_allocator< Eigen::Quaterniond > > > m_rotations
Rotations for non-detectors.
std::shared_ptr< std::vector< size_t > > m_assemblySortedDetectorIndices
Detector indexes sorted by assembly.
std::shared_ptr< std::vector< std::pair< size_t, size_t > > > m_componentRanges
Component ranges.
std::shared_ptr< std::vector< Eigen::Vector3d > > m_positions
Positions for non-detectors.
std::shared_ptr< std::vector< std::shared_ptr< const Mantid::Geometry::IObject > > > m_shapes
Shapes stored in fly-weight fashion.
std::shared_ptr< std::vector< std::vector< size_t > > > m_children
Stores instrument tree structure by storing children of all Components.
std::shared_ptr< std::map< size_t, Eigen::Vector2d > > m_sideBySideViewPositions
Side-by-side (unwrapped) instrument-view positions when declared in the IDF.
std::shared_ptr< std::vector< Eigen::Vector3d > > m_scaleFactors
Scale factors.
std::shared_ptr< std::vector< Mantid::Geometry::IComponent * > > m_componentIds
Detectors components always specified first.
std::shared_ptr< std::vector< Eigen::Vector3d > > m_detectorPositions
Positions for detectors.
std::shared_ptr< std::vector< Beamline::ComponentType > > m_componentType
Structured bank flag.
std::shared_ptr< std::map< size_t, Beamline::PixelGridComponent > > m_pixelGridComponents
Rectangular/Grid bank pixel-grid metadata.
Mantid::Geometry::IComponent * m_sourceId
Source id to look for.
std::shared_ptr< std::vector< std::string > > m_names
Component names.
Mantid::Geometry::IComponent * m_sampleId
Sample id to look for.
std::shared_ptr< const Mantid::Geometry::Instrument > m_instrument
Instrument to build around.
std::shared_ptr< std::vector< size_t > > m_parentComponentIndices
Index of the parent component.
std::shared_ptr< std::unordered_map< Mantid::Geometry::IComponent const *, size_t > > m_componentIdToIndexMap
Component ID -> Component Index map.
std::shared_ptr< std::vector< size_t > > m_monitorIndices
Monitor indexes for detectors.
std::shared_ptr< std::vector< Eigen::Quaterniond, Eigen::aligned_allocator< Eigen::Quaterniond > > > m_detectorRotations
Rotations for detectors.
Class for Assembly of geometric components.
Parameter map iterator typedef.
Helper class which provides the Collimation Length for SANS instruments.
int32_t detid_t
Typedef for a detector ID.
Generate a tableworkspace to store the calibration results.