9#include "MantidBeamline/ComponentType.h"
10#include "MantidBeamline/PixelGridComponent.h"
11#include "MantidBeamline/StructuredGridComponent.h"
12#include "MantidGeometry/DllConfig.h"
14#include <Eigen/Geometry>
15#include <Eigen/StdVector>
19#include <unordered_map>
39class RectangularDetector;
69 std::shared_ptr<std::vector<std::vector<size_t>>>
m_children;
90 std::shared_ptr<std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond>>>
m_rotations;
93 std::shared_ptr<std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond>>>
m_detectorRotations;
111 int64_t m_sourceIndex = -1;
114 int64_t m_sampleIndex = -1;
120 std::shared_ptr<std::vector<std::shared_ptr<const Mantid::Geometry::IObject>>>
m_shapes;
129 std::shared_ptr<std::vector<std::string>>
m_names;
143 std::shared_ptr<ParameterInfo> makeParameterInfo()
const;
151 void walkInstrument();
165 virtual size_t registerInfiniteObjComponent(
const IObjComponent &objComponent)
override;
173 std::shared_ptr<const std::vector<Mantid::Geometry::IComponent *>> componentIds()
const;
175 std::shared_ptr<const std::unordered_map<Mantid::Geometry::IComponent const *, size_t>> componentIdToIndexMap()
const;
177 std::shared_ptr<const std::unordered_map<detid_t, size_t>> detectorIdToIndexMap()
const;
180 bool isEmpty()
const;
182 std::unique_ptr<Beamline::ComponentInfo> componentInfo()
const;
183 std::unique_ptr<Beamline::DetectorInfo> detectorInfo()
const;
185 std::shared_ptr<std::vector<detid_t>> detectorIds()
const;
189 std::pair<std::unique_ptr<ComponentInfo>, std::unique_ptr<DetectorInfo>> makeWrappers()
const;
191 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::map< size_t, Beamline::StructuredGridComponent > > m_structuredGridComponents
Pixel counts, ID numbering and pixel vertices of Structured banks, keyed by component index.
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.