51 static constexpr size_t invalidIndex = std::numeric_limits<size_t>::max();
59 std::shared_ptr<const std::unordered_map<Geometry::IComponent const *, size_t>>
m_compIDToIndex;
62 std::shared_ptr<std::vector<std::shared_ptr<const Geometry::IObject>>>
m_shapes;
67 template <
class T> std::vector<T> getParameter(
size_t componentIndex,
const std::string &
name,
bool recursive)
const;
71 void addTypedParameter(
const size_t componentIndex,
const std::string &type,
const std::string &
name,
const T &
value,
72 const std::string *
const pDescription,
const std::string &pVisible);
79 const bool excludeMonitors =
false)
const;
86 const bool excludeMonitors =
false)
const;
98 ComponentInfo(std::unique_ptr<Beamline::ComponentInfo> componentInfo,
99 std::shared_ptr<
const std::vector<Mantid::Geometry::IComponent *>> componentIds,
100 std::shared_ptr<
const std::unordered_map<Geometry::IComponent const *, size_t>> componentIdToIndexMap,
101 std::shared_ptr<std::vector<std::shared_ptr<const Geometry::IObject>>> shapes,
102 std::shared_ptr<ParameterInfo> parameterInfo =
nullptr);
106 std::unique_ptr<ComponentInfo> cloneWithoutDetectorInfo()
const;
107 std::vector<size_t> detectorsInSubtree(
size_t componentIndex)
const;
108 std::vector<size_t> componentsInSubtree(
size_t componentIndex)
const;
109 const std::vector<size_t> &children(
size_t componentIndex)
const;
111 size_t getMemorySize()
const;
116 size_t indexOfAny(
const std::string &
name)
const;
117 bool uniqueName(
const std::string &
name)
const;
118 bool isDetector(
const size_t componentIndex)
const;
123 Kernel::V3D relativePosition(
const size_t componentIndex)
const;
124 Kernel::Quat relativeRotation(
const size_t componentIndex)
const;
129 void scaleComponent(
const size_t componentIndex,
const Kernel::V3D &newScaling);
130 void scaleComponent(
const std::pair<size_t, size_t> &
index,
const Kernel::V3D &newScaling);
131 size_t parent(
const size_t componentIndex)
const;
132 bool hasParent(
const size_t componentIndex)
const;
133 bool hasDetectorInfo()
const;
136 bool hasSource()
const;
138 bool hasSample()
const;
140 bool hasDetectors(
const size_t componentIndex)
const;
141 size_t source()
const;
142 size_t sample()
const;
144 Kernel::V3D scaleFactor(
const size_t componentIndex)
const;
145 const std::string &
name(
const size_t componentIndex)
const;
146 void setScaleFactor(
const size_t componentIndex,
const Kernel::V3D &scaleFactor);
147 Kernel::V2D sideBySideViewPosition(
const size_t componentIndex)
const;
148 Beamline::PixelGridComponent pixelGridComponent(
const size_t componentIndex)
const;
149 size_t detectorIndexAtXYZ(
const size_t componentIndex,
const int x,
const int y,
const int z)
const;
150 std::tuple<int, int, int> xyzForDetectorID(
const size_t componentIndex,
const detid_t detectorID)
const;
151 bool isGridDetector(
size_t const componentIndex)
const;
155 bool hasValidShape(
const size_t componentIndex)
const;
158 std::unordered_map<std::shared_ptr<const Geometry::IObject>, std::vector<size_t>> shapeToComponentIndices()
const;
162 const bool excludeMonitors =
false)
const;
163 Beamline::ComponentType componentType(
const size_t componentIndex)
const;
164 void setScanInterval(
const std::pair<Types::Core::DateAndTime, Types::Core::DateAndTime> &interval);
165 size_t scanCount()
const;
173 size_t findBankParent(
size_t index,
const std::string &bankPart)
const;
176 std::string fullName(
const size_t componentIndex)
const;
179 size_t indexOfFullName(
const std::string &fullName)
const;
182 bool hasParameter(
const size_t componentIndex,
const std::string &
name,
bool recursive =
true)
const;
183 std::set<std::string> getParameterNames(
const size_t componentIndex,
bool recursive =
true)
const;
186 std::vector<double> getNumberParameter(
const size_t componentIndex,
const std::string &
name,
187 bool recursive =
true)
const;
188 std::vector<int> getIntParameter(
const size_t componentIndex,
const std::string &
name,
bool recursive =
true)
const;
189 std::vector<bool> getBoolParameter(
const size_t componentIndex,
const std::string &
name,
bool recursive =
true)
const;
190 std::vector<std::string> getStringParameter(
const size_t componentIndex,
const std::string &
name,
191 bool recursive =
true)
const;
192 double getFittingParameter(
const size_t componentIndex,
const std::string &
name,
double xvalue)
const;
195 void addParameter(
const size_t componentIndex,
const std::string &type,
const std::string &
name,
196 const std::string &
value,
const std::string *
const pDescription =
nullptr,
197 const std::string &pVisible =
"true");
199 void addDouble(
const size_t componentIndex,
const std::string &
name,
double value,
200 const std::string *
const pDescription =
nullptr,
const std::string &pVisible =
"true");
202 void addInt(
const size_t componentIndex,
const std::string &
name,
int value,
203 const std::string *
const pDescription =
nullptr,
const std::string &pVisible =
"true");
205 void addBool(
const size_t componentIndex,
const std::string &
name,
bool value,
206 const std::string *
const pDescription =
nullptr,
const std::string &pVisible =
"true");
208 void addString(
const size_t componentIndex,
const std::string &
name,
const std::string &
value,
209 const std::string *
const pDescription =
nullptr,
const std::string &pVisible =
"true");
212 const std::string *
const pDescription =
nullptr);
215 const std::string *
const pDescription =
nullptr);
217 void addFittingParameter(
const size_t componentIndex,
const std::string &
name,
const std::string &fittingFunction,
218 const std::string &
value,
const std::string *
const pDescription =
nullptr,
219 const std::string &pVisible =
"true");
222 void clearParameter(
const size_t componentIndex,
const std::string &
name);