Mantid
Loading...
Searching...
No Matches
MDEventFactory.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
10
14
15#include <memory>
16
17namespace Mantid {
18namespace DataObjects {
19
27// preliminary definition to satisfy gcc
28template <size_t nd> class LOOP;
29
30class MANTID_DATAOBJECTS_DLL MDEventFactory {
36 enum { MAX_MD_DIMENSIONS_NUM = 9 };
37
38public:
42 enum BoxType {
43 MDBoxWithLean = 0, //< MDBox generated for MDLeanEvent
44 MDGridBoxWithLean = 1, //< MDGridBox generated for MDLeanEvent
45 MDBoxWithFat = 2, //< MDBox generated for MDEvent
46 MDGridBoxWithFat = 3, //< MDGridBox generated for MDEvent
47 NumBoxTypes = 4 //< Number of different types of the events, used as metaloop splitter
48 };
49 // create MD workspace factory call
50 static API::IMDEventWorkspace_sptr CreateMDWorkspace(
51 size_t nd, const std::string &eventType = "MDLeanEvent",
53 const Mantid::API::MDNormalization &preferredNormalizationHisto =
55
56 // create MDBox factory call
57 static API::IMDNode *createBox(size_t nDimensions, BoxType Type, API::BoxController_sptr &splitter,
58 const std::vector<Mantid::Geometry::MDDimensionExtents<coord_t>> &extentsVector =
60 const uint32_t depth = 0, const size_t nBoxEvents = UNDEF_SIZET,
61 const size_t boxID = UNDEF_SIZET);
62
64 static size_t getMaxNumDim() { return size_t(MAX_MD_DIMENSIONS_NUM); }
65
66private:
69 const uint32_t, const size_t, const size_t);
70 // vector of function pointers to the functions which create MDBox or
71 // MDGridBox;
72 static std::vector<fpCreateBox> boxCreatorFP;
73
74 // typedef for the class function pointer to the function, which creates MD
75 // Workspaces
76 using fpCreateMDWS = API::IMDEventWorkspace *(*)(const std::string &, const Mantid::API::MDNormalization &,
78 // vector of function pointers to the funcions
79 static std::vector<fpCreateMDWS> wsCreatorFP;
80
81 // local wrapper around the MDWorkspace constructor as the constructor's
82 // address can not be taken . This can also help in a future when writing
83 // custom memory allocator
84 template <size_t nd>
85 static API::IMDEventWorkspace *createMDWorkspaceND(const std::string &eventType,
86 const Mantid::API::MDNormalization &preferredNormalization,
87 const Mantid::API::MDNormalization &preferredNormalizationHisto);
88
89 // local wrappers around the MDBox/MDGridBox constructors as the constructor's
90 // address can not be taken. This can also help in a future when writing
91 // custom memory allocator
92 template <size_t nd>
93 static API::IMDNode *createMDBoxLean(API::BoxController *splitter,
94 const std::vector<Mantid::Geometry::MDDimensionExtents<coord_t>> &extentsVector,
95 const uint32_t depth, const size_t nBoxEvents, const size_t boxID);
96 template <size_t nd>
97 static API::IMDNode *createMDBoxFat(API::BoxController *splitter,
98 const std::vector<Mantid::Geometry::MDDimensionExtents<coord_t>> &extentsVector,
99 const uint32_t depth, const size_t nBoxEvents, const size_t boxID);
100 template <size_t nd>
101 static API::IMDNode *
102 createMDGridBoxLean(API::BoxController *splitter,
103 const std::vector<Mantid::Geometry::MDDimensionExtents<coord_t>> &extentsVector,
104 const uint32_t depth, const size_t nBoxEvents = 0, const size_t boxID = 0);
105 template <size_t nd>
106 static API::IMDNode *
107 createMDGridBoxFat(API::BoxController *splitter,
108 const std::vector<Mantid::Geometry::MDDimensionExtents<coord_t>> &extentsVector,
109 const uint32_t depth, const size_t nBoxEvents = 0, const size_t boxID = 0);
110 // 0-dimensions terminator
111 static API::IMDNode *createMDBoxWrong(API::BoxController *,
113 const uint32_t, const size_t, const size_t);
114
115 // helper class to generate methaloop on MD workspaces dimensions:
116 template <size_t nd> friend class LOOP;
117
119};
120
121// ### BEGIN AUTO-GENERATED CODE
122/* Code below Auto-generated by 'generate_mdevent_declarations.py'
123 * on 2016-06-03 10:28:44.608989
124 *
125 * DO NOT EDIT!
126 */
127
135#define CALL_MDEVENT_FUNCTION(funcname, workspace) \
136 { \
137 MDEventWorkspace<MDLeanEvent<1>, 1>::sptr MDEW_MDLEANEVENT_1 = \
138 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<1>, 1>>(workspace); \
139 if (MDEW_MDLEANEVENT_1) \
140 funcname<MDLeanEvent<1>, 1>(MDEW_MDLEANEVENT_1); \
141 MDEventWorkspace<MDLeanEvent<2>, 2>::sptr MDEW_MDLEANEVENT_2 = \
142 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<2>, 2>>(workspace); \
143 if (MDEW_MDLEANEVENT_2) \
144 funcname<MDLeanEvent<2>, 2>(MDEW_MDLEANEVENT_2); \
145 MDEventWorkspace<MDLeanEvent<3>, 3>::sptr MDEW_MDLEANEVENT_3 = \
146 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<3>, 3>>(workspace); \
147 if (MDEW_MDLEANEVENT_3) \
148 funcname<MDLeanEvent<3>, 3>(MDEW_MDLEANEVENT_3); \
149 MDEventWorkspace<MDLeanEvent<4>, 4>::sptr MDEW_MDLEANEVENT_4 = \
150 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<4>, 4>>(workspace); \
151 if (MDEW_MDLEANEVENT_4) \
152 funcname<MDLeanEvent<4>, 4>(MDEW_MDLEANEVENT_4); \
153 MDEventWorkspace<MDLeanEvent<5>, 5>::sptr MDEW_MDLEANEVENT_5 = \
154 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<5>, 5>>(workspace); \
155 if (MDEW_MDLEANEVENT_5) \
156 funcname<MDLeanEvent<5>, 5>(MDEW_MDLEANEVENT_5); \
157 MDEventWorkspace<MDLeanEvent<6>, 6>::sptr MDEW_MDLEANEVENT_6 = \
158 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<6>, 6>>(workspace); \
159 if (MDEW_MDLEANEVENT_6) \
160 funcname<MDLeanEvent<6>, 6>(MDEW_MDLEANEVENT_6); \
161 MDEventWorkspace<MDLeanEvent<7>, 7>::sptr MDEW_MDLEANEVENT_7 = \
162 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<7>, 7>>(workspace); \
163 if (MDEW_MDLEANEVENT_7) \
164 funcname<MDLeanEvent<7>, 7>(MDEW_MDLEANEVENT_7); \
165 MDEventWorkspace<MDLeanEvent<8>, 8>::sptr MDEW_MDLEANEVENT_8 = \
166 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<8>, 8>>(workspace); \
167 if (MDEW_MDLEANEVENT_8) \
168 funcname<MDLeanEvent<8>, 8>(MDEW_MDLEANEVENT_8); \
169 MDEventWorkspace<MDLeanEvent<9>, 9>::sptr MDEW_MDLEANEVENT_9 = \
170 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<9>, 9>>(workspace); \
171 if (MDEW_MDLEANEVENT_9) \
172 funcname<MDLeanEvent<9>, 9>(MDEW_MDLEANEVENT_9); \
173 MDEventWorkspace<MDEvent<1>, 1>::sptr MDEW_MDEVENT_1 = \
174 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<1>, 1>>(workspace); \
175 if (MDEW_MDEVENT_1) \
176 funcname<MDEvent<1>, 1>(MDEW_MDEVENT_1); \
177 MDEventWorkspace<MDEvent<2>, 2>::sptr MDEW_MDEVENT_2 = \
178 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<2>, 2>>(workspace); \
179 if (MDEW_MDEVENT_2) \
180 funcname<MDEvent<2>, 2>(MDEW_MDEVENT_2); \
181 MDEventWorkspace<MDEvent<3>, 3>::sptr MDEW_MDEVENT_3 = \
182 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<3>, 3>>(workspace); \
183 if (MDEW_MDEVENT_3) \
184 funcname<MDEvent<3>, 3>(MDEW_MDEVENT_3); \
185 MDEventWorkspace<MDEvent<4>, 4>::sptr MDEW_MDEVENT_4 = \
186 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<4>, 4>>(workspace); \
187 if (MDEW_MDEVENT_4) \
188 funcname<MDEvent<4>, 4>(MDEW_MDEVENT_4); \
189 MDEventWorkspace<MDEvent<5>, 5>::sptr MDEW_MDEVENT_5 = \
190 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<5>, 5>>(workspace); \
191 if (MDEW_MDEVENT_5) \
192 funcname<MDEvent<5>, 5>(MDEW_MDEVENT_5); \
193 MDEventWorkspace<MDEvent<6>, 6>::sptr MDEW_MDEVENT_6 = \
194 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<6>, 6>>(workspace); \
195 if (MDEW_MDEVENT_6) \
196 funcname<MDEvent<6>, 6>(MDEW_MDEVENT_6); \
197 MDEventWorkspace<MDEvent<7>, 7>::sptr MDEW_MDEVENT_7 = \
198 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<7>, 7>>(workspace); \
199 if (MDEW_MDEVENT_7) \
200 funcname<MDEvent<7>, 7>(MDEW_MDEVENT_7); \
201 MDEventWorkspace<MDEvent<8>, 8>::sptr MDEW_MDEVENT_8 = \
202 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<8>, 8>>(workspace); \
203 if (MDEW_MDEVENT_8) \
204 funcname<MDEvent<8>, 8>(MDEW_MDEVENT_8); \
205 MDEventWorkspace<MDEvent<9>, 9>::sptr MDEW_MDEVENT_9 = \
206 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<9>, 9>>(workspace); \
207 if (MDEW_MDEVENT_9) \
208 funcname<MDEvent<9>, 9>(MDEW_MDEVENT_9); \
209 }
210
218#define CALL_MDEVENT_FUNCTION3(funcname, workspace) \
219 { \
220 MDEventWorkspace<MDLeanEvent<3>, 3>::sptr MDEW_MDLEANEVENT_3 = \
221 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<3>, 3>>(workspace); \
222 if (MDEW_MDLEANEVENT_3) \
223 funcname<MDLeanEvent<3>, 3>(MDEW_MDLEANEVENT_3); \
224 MDEventWorkspace<MDLeanEvent<4>, 4>::sptr MDEW_MDLEANEVENT_4 = \
225 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<4>, 4>>(workspace); \
226 if (MDEW_MDLEANEVENT_4) \
227 funcname<MDLeanEvent<4>, 4>(MDEW_MDLEANEVENT_4); \
228 MDEventWorkspace<MDLeanEvent<5>, 5>::sptr MDEW_MDLEANEVENT_5 = \
229 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<5>, 5>>(workspace); \
230 if (MDEW_MDLEANEVENT_5) \
231 funcname<MDLeanEvent<5>, 5>(MDEW_MDLEANEVENT_5); \
232 MDEventWorkspace<MDLeanEvent<6>, 6>::sptr MDEW_MDLEANEVENT_6 = \
233 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<6>, 6>>(workspace); \
234 if (MDEW_MDLEANEVENT_6) \
235 funcname<MDLeanEvent<6>, 6>(MDEW_MDLEANEVENT_6); \
236 MDEventWorkspace<MDLeanEvent<7>, 7>::sptr MDEW_MDLEANEVENT_7 = \
237 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<7>, 7>>(workspace); \
238 if (MDEW_MDLEANEVENT_7) \
239 funcname<MDLeanEvent<7>, 7>(MDEW_MDLEANEVENT_7); \
240 MDEventWorkspace<MDLeanEvent<8>, 8>::sptr MDEW_MDLEANEVENT_8 = \
241 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<8>, 8>>(workspace); \
242 if (MDEW_MDLEANEVENT_8) \
243 funcname<MDLeanEvent<8>, 8>(MDEW_MDLEANEVENT_8); \
244 MDEventWorkspace<MDLeanEvent<9>, 9>::sptr MDEW_MDLEANEVENT_9 = \
245 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<9>, 9>>(workspace); \
246 if (MDEW_MDLEANEVENT_9) \
247 funcname<MDLeanEvent<9>, 9>(MDEW_MDLEANEVENT_9); \
248 MDEventWorkspace<MDEvent<3>, 3>::sptr MDEW_MDEVENT_3 = \
249 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<3>, 3>>(workspace); \
250 if (MDEW_MDEVENT_3) \
251 funcname<MDEvent<3>, 3>(MDEW_MDEVENT_3); \
252 MDEventWorkspace<MDEvent<4>, 4>::sptr MDEW_MDEVENT_4 = \
253 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<4>, 4>>(workspace); \
254 if (MDEW_MDEVENT_4) \
255 funcname<MDEvent<4>, 4>(MDEW_MDEVENT_4); \
256 MDEventWorkspace<MDEvent<5>, 5>::sptr MDEW_MDEVENT_5 = \
257 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<5>, 5>>(workspace); \
258 if (MDEW_MDEVENT_5) \
259 funcname<MDEvent<5>, 5>(MDEW_MDEVENT_5); \
260 MDEventWorkspace<MDEvent<6>, 6>::sptr MDEW_MDEVENT_6 = \
261 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<6>, 6>>(workspace); \
262 if (MDEW_MDEVENT_6) \
263 funcname<MDEvent<6>, 6>(MDEW_MDEVENT_6); \
264 MDEventWorkspace<MDEvent<7>, 7>::sptr MDEW_MDEVENT_7 = \
265 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<7>, 7>>(workspace); \
266 if (MDEW_MDEVENT_7) \
267 funcname<MDEvent<7>, 7>(MDEW_MDEVENT_7); \
268 MDEventWorkspace<MDEvent<8>, 8>::sptr MDEW_MDEVENT_8 = \
269 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<8>, 8>>(workspace); \
270 if (MDEW_MDEVENT_8) \
271 funcname<MDEvent<8>, 8>(MDEW_MDEVENT_8); \
272 MDEventWorkspace<MDEvent<9>, 9>::sptr MDEW_MDEVENT_9 = \
273 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<9>, 9>>(workspace); \
274 if (MDEW_MDEVENT_9) \
275 funcname<MDEvent<9>, 9>(MDEW_MDEVENT_9); \
276 }
277
285#define CONST_CALL_MDEVENT_FUNCTION(funcname, workspace) \
286 { \
287 const MDEventWorkspace<MDLeanEvent<1>, 1>::sptr CONST_MDEW_MDLEANEVENT_1 = \
288 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<1>, 1>>(workspace); \
289 if (CONST_MDEW_MDLEANEVENT_1) \
290 funcname<MDLeanEvent<1>, 1>(CONST_MDEW_MDLEANEVENT_1); \
291 const MDEventWorkspace<MDLeanEvent<2>, 2>::sptr CONST_MDEW_MDLEANEVENT_2 = \
292 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<2>, 2>>(workspace); \
293 if (CONST_MDEW_MDLEANEVENT_2) \
294 funcname<MDLeanEvent<2>, 2>(CONST_MDEW_MDLEANEVENT_2); \
295 const MDEventWorkspace<MDLeanEvent<3>, 3>::sptr CONST_MDEW_MDLEANEVENT_3 = \
296 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<3>, 3>>(workspace); \
297 if (CONST_MDEW_MDLEANEVENT_3) \
298 funcname<MDLeanEvent<3>, 3>(CONST_MDEW_MDLEANEVENT_3); \
299 const MDEventWorkspace<MDLeanEvent<4>, 4>::sptr CONST_MDEW_MDLEANEVENT_4 = \
300 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<4>, 4>>(workspace); \
301 if (CONST_MDEW_MDLEANEVENT_4) \
302 funcname<MDLeanEvent<4>, 4>(CONST_MDEW_MDLEANEVENT_4); \
303 const MDEventWorkspace<MDLeanEvent<5>, 5>::sptr CONST_MDEW_MDLEANEVENT_5 = \
304 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<5>, 5>>(workspace); \
305 if (CONST_MDEW_MDLEANEVENT_5) \
306 funcname<MDLeanEvent<5>, 5>(CONST_MDEW_MDLEANEVENT_5); \
307 const MDEventWorkspace<MDLeanEvent<6>, 6>::sptr CONST_MDEW_MDLEANEVENT_6 = \
308 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<6>, 6>>(workspace); \
309 if (CONST_MDEW_MDLEANEVENT_6) \
310 funcname<MDLeanEvent<6>, 6>(CONST_MDEW_MDLEANEVENT_6); \
311 const MDEventWorkspace<MDLeanEvent<7>, 7>::sptr CONST_MDEW_MDLEANEVENT_7 = \
312 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<7>, 7>>(workspace); \
313 if (CONST_MDEW_MDLEANEVENT_7) \
314 funcname<MDLeanEvent<7>, 7>(CONST_MDEW_MDLEANEVENT_7); \
315 const MDEventWorkspace<MDLeanEvent<8>, 8>::sptr CONST_MDEW_MDLEANEVENT_8 = \
316 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<8>, 8>>(workspace); \
317 if (CONST_MDEW_MDLEANEVENT_8) \
318 funcname<MDLeanEvent<8>, 8>(CONST_MDEW_MDLEANEVENT_8); \
319 const MDEventWorkspace<MDLeanEvent<9>, 9>::sptr CONST_MDEW_MDLEANEVENT_9 = \
320 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<9>, 9>>(workspace); \
321 if (CONST_MDEW_MDLEANEVENT_9) \
322 funcname<MDLeanEvent<9>, 9>(CONST_MDEW_MDLEANEVENT_9); \
323 const MDEventWorkspace<MDEvent<1>, 1>::sptr CONST_MDEW_MDEVENT_1 = \
324 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<1>, 1>>(workspace); \
325 if (CONST_MDEW_MDEVENT_1) \
326 funcname<MDEvent<1>, 1>(CONST_MDEW_MDEVENT_1); \
327 const MDEventWorkspace<MDEvent<2>, 2>::sptr CONST_MDEW_MDEVENT_2 = \
328 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<2>, 2>>(workspace); \
329 if (CONST_MDEW_MDEVENT_2) \
330 funcname<MDEvent<2>, 2>(CONST_MDEW_MDEVENT_2); \
331 const MDEventWorkspace<MDEvent<3>, 3>::sptr CONST_MDEW_MDEVENT_3 = \
332 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<3>, 3>>(workspace); \
333 if (CONST_MDEW_MDEVENT_3) \
334 funcname<MDEvent<3>, 3>(CONST_MDEW_MDEVENT_3); \
335 const MDEventWorkspace<MDEvent<4>, 4>::sptr CONST_MDEW_MDEVENT_4 = \
336 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<4>, 4>>(workspace); \
337 if (CONST_MDEW_MDEVENT_4) \
338 funcname<MDEvent<4>, 4>(CONST_MDEW_MDEVENT_4); \
339 const MDEventWorkspace<MDEvent<5>, 5>::sptr CONST_MDEW_MDEVENT_5 = \
340 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<5>, 5>>(workspace); \
341 if (CONST_MDEW_MDEVENT_5) \
342 funcname<MDEvent<5>, 5>(CONST_MDEW_MDEVENT_5); \
343 const MDEventWorkspace<MDEvent<6>, 6>::sptr CONST_MDEW_MDEVENT_6 = \
344 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<6>, 6>>(workspace); \
345 if (CONST_MDEW_MDEVENT_6) \
346 funcname<MDEvent<6>, 6>(CONST_MDEW_MDEVENT_6); \
347 const MDEventWorkspace<MDEvent<7>, 7>::sptr CONST_MDEW_MDEVENT_7 = \
348 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<7>, 7>>(workspace); \
349 if (CONST_MDEW_MDEVENT_7) \
350 funcname<MDEvent<7>, 7>(CONST_MDEW_MDEVENT_7); \
351 const MDEventWorkspace<MDEvent<8>, 8>::sptr CONST_MDEW_MDEVENT_8 = \
352 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<8>, 8>>(workspace); \
353 if (CONST_MDEW_MDEVENT_8) \
354 funcname<MDEvent<8>, 8>(CONST_MDEW_MDEVENT_8); \
355 const MDEventWorkspace<MDEvent<9>, 9>::sptr CONST_MDEW_MDEVENT_9 = \
356 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<9>, 9>>(workspace); \
357 if (CONST_MDEW_MDEVENT_9) \
358 funcname<MDEvent<9>, 9>(CONST_MDEW_MDEVENT_9); \
359 }
360
361// ------------- Typedefs for MDBox ------------------
362
399
400// ------------- Typedefs for MDBoxBase ------------------
401
438
439// ------------- Typedefs for MDGridBox ------------------
440
477
478// ------------- Typedefs for MDEventWorkspace ------------------
479
516
517/* CODE ABOWE WAS AUTO-GENERATED BY generate_mdevent_declarations.py - DO NOT
518 * EDIT! */
519
520// ### END AUTO-GENERATED CODE
521// ##################################################################
522
523} // namespace DataObjects
524} // namespace Mantid
#define UNDEF_SIZET
Definition MDTypes.h:61
This class is used by MDBox and MDGridBox in order to intelligently determine optimal behavior.
Abstract base class for multi-dimension event workspaces (MDEventWorkspace).
MDEventFactory : collection of methods to create MDLeanEvent* instances, by specifying the number of ...
Templated super-class of a multi-dimensional event "box".
Definition MDBoxBase.h:49
Templated class for a multi-dimensional event "box".
Definition MDBox.h:45
API::IMDNode *(*)(API::BoxController *, const std::vector< Mantid::Geometry::MDDimensionExtents< coord_t > > &, const uint32_t, const size_t, const size_t) fpCreateBox
static LOOP< MAX_MD_DIMENSIONS_NUM > CODE_GENERATOR
BoxType
enum defines fifferent box types generated by createBox factory We will use typecast from integer to ...
static std::vector< fpCreateMDWS > wsCreatorFP
static size_t getMaxNumDim()
Returns max number of MD dimensions allowed by current Mantid version.
API::IMDEventWorkspace *(*)(const std::string &, const Mantid::API::MDNormalization &, const Mantid::API::MDNormalization &) fpCreateMDWS
static std::vector< fpCreateBox > boxCreatorFP
static vector, conaining the pointers to the functions creating MD boxes
Templated class for the multi-dimensional event workspace.
Templated class for a GRIDDED multi-dimensional event "box".
Definition MDGridBox.h:42
Simple class that holds the extents (min/max) of a given dimension in a MD workspace or MDBox.
std::shared_ptr< IMDEventWorkspace > IMDEventWorkspace_sptr
Shared pointer to Mantid::API::IMDEventWorkspace.
std::shared_ptr< BoxController > BoxController_sptr
Shared ptr to BoxController.
MDNormalization
Enum describing different ways to normalize the signal in a MDWorkspace.
Definition IMDIterator.h:25
@ VolumeNormalization
Divide the signal by the volume of the box/bin.
Definition IMDIterator.h:29
Helper class which provides the Collimation Length for SANS instruments.