9#include "MantidBeamline/ComponentType.h"
10#include "MantidGeometry/DllConfig.h"
12#include <Eigen/Geometry>
13#include <Eigen/StdVector>
16#include <unordered_map>
35class RectangularDetector;
65 std::shared_ptr<std::vector<std::vector<size_t>>>
m_children;
86 std::shared_ptr<std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond>>>
m_rotations;
89 std::shared_ptr<std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond>>>
m_detectorRotations;
107 int64_t m_sourceIndex = -1;
110 int64_t m_sampleIndex = -1;
116 std::shared_ptr<std::vector<std::shared_ptr<const Mantid::Geometry::IObject>>>
m_shapes;
125 std::shared_ptr<std::vector<std::string>>
m_names;
129 std::pair<std::unique_ptr<ComponentInfo>, std::unique_ptr<DetectorInfo>> makeWrappers()
const;
137 void walkInstrument();
151 virtual size_t registerInfiniteObjComponent(
const IObjComponent &objComponent)
override;
159 std::shared_ptr<const std::vector<Mantid::Geometry::IComponent *>> componentIds()
const;
161 std::shared_ptr<const std::unordered_map<Mantid::Geometry::IComponent *, size_t>> componentIdToIndexMap()
const;
163 std::shared_ptr<const std::unordered_map<detid_t, size_t>> detectorIdToIndexMap()
const;
166 bool isEmpty()
const;
168 std::unique_ptr<Beamline::ComponentInfo> componentInfo()
const;
169 std::unique_ptr<Beamline::DetectorInfo> detectorInfo()
const;
171 std::shared_ptr<std::vector<detid_t>> detectorIds()
const;
173 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::vector< Eigen::Vector3d > > m_scaleFactors
Scale factors.
std::shared_ptr< std::unordered_map< Mantid::Geometry::IComponent *, size_t > > m_componentIdToIndexMap
Component ID -> Component Index map.
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.
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::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.
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.