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
16
17#include <memory>
18
19namespace Mantid {
20namespace DataObjects {
21
29// preliminary definition to satisfy gcc
30template <size_t nd> class LOOP;
31
32class MANTID_DATAOBJECTS_DLL MDEventFactory {
38 enum { MAX_MD_DIMENSIONS_NUM = 9 };
39
40public:
44 enum BoxType {
45 MDBoxWithLean = 0, //< MDBox generated for MDLeanEvent
46 MDGridBoxWithLean = 1, //< MDGridBox generated for MDLeanEvent
47 MDBoxWithFat = 2, //< MDBox generated for MDEvent
48 MDGridBoxWithFat = 3, //< MDGridBox generated for MDEvent
49 NumBoxTypes = 4 //< Number of different types of the events, used as metaloop splitter
50 };
51 // create MD workspace factory call
52 static API::IMDEventWorkspace_sptr CreateMDWorkspace(
53 size_t nd, const std::string &eventType = "MDLeanEvent",
55 const Mantid::API::MDNormalization &preferredNormalizationHisto =
57
58 // create MDBox factory call
59 static API::IMDNode *createBox(size_t nDimensions, BoxType Type, API::BoxController_sptr &splitter,
60 const std::vector<Mantid::Geometry::MDDimensionExtents<coord_t>> &extentsVector =
62 const uint32_t depth = 0, const size_t nBoxEvents = UNDEF_SIZET,
63 const size_t boxID = UNDEF_SIZET);
64
66 static size_t getMaxNumDim() { return size_t(MAX_MD_DIMENSIONS_NUM); }
67
68private:
71 const uint32_t, const size_t, const size_t);
72 // vector of function pointers to the functions which create MDBox or
73 // MDGridBox;
74 static std::vector<fpCreateBox> boxCreatorFP;
75
76 // typedef for the class function pointer to the function, which creates MD
77 // Workspaces
78 using fpCreateMDWS = API::IMDEventWorkspace *(*)(const std::string &, const Mantid::API::MDNormalization &,
80 // vector of function pointers to the funcions
81 static std::vector<fpCreateMDWS> wsCreatorFP;
82
83 // local wrapper around the MDWorkspace constructor as the constructor's
84 // address can not be taken . This can also help in a future when writing
85 // custom memory allocator
86 template <size_t nd>
87 static API::IMDEventWorkspace *createMDWorkspaceND(const std::string &eventType,
88 const Mantid::API::MDNormalization &preferredNormalization,
89 const Mantid::API::MDNormalization &preferredNormalizationHisto);
90
91 // local wrappers around the MDBox/MDGridBox constructors as the constructor's
92 // address can not be taken. This can also help in a future when writing
93 // custom memory allocator
94 template <size_t nd>
95 static API::IMDNode *createMDBoxLean(API::BoxController *splitter,
96 const std::vector<Mantid::Geometry::MDDimensionExtents<coord_t>> &extentsVector,
97 const uint32_t depth, const size_t nBoxEvents, const size_t boxID);
98 template <size_t nd>
99 static API::IMDNode *createMDBoxFat(API::BoxController *splitter,
100 const std::vector<Mantid::Geometry::MDDimensionExtents<coord_t>> &extentsVector,
101 const uint32_t depth, const size_t nBoxEvents, const size_t boxID);
102 template <size_t nd>
103 static API::IMDNode *
104 createMDGridBoxLean(API::BoxController *splitter,
105 const std::vector<Mantid::Geometry::MDDimensionExtents<coord_t>> &extentsVector,
106 const uint32_t depth, const size_t nBoxEvents = 0, const size_t boxID = 0);
107 template <size_t nd>
108 static API::IMDNode *
109 createMDGridBoxFat(API::BoxController *splitter,
110 const std::vector<Mantid::Geometry::MDDimensionExtents<coord_t>> &extentsVector,
111 const uint32_t depth, const size_t nBoxEvents = 0, const size_t boxID = 0);
112 // 0-dimensions terminator
113 static API::IMDNode *createMDBoxWrong(API::BoxController *,
115 const uint32_t, const size_t, const size_t);
116
117 // helper class to generate methaloop on MD workspaces dimensions:
118 template <size_t nd> friend class LOOP;
119
121};
122
123//### BEGIN AUTO-GENERATED CODE
124/* Code below Auto-generated by 'generate_mdevent_declarations.py'
125 * on 2016-06-03 10:28:44.608989
126 *
127 * DO NOT EDIT!
128 */
129
137#define CALL_MDEVENT_FUNCTION(funcname, workspace) \
138 { \
139 MDEventWorkspace<MDLeanEvent<1>, 1>::sptr MDEW_MDLEANEVENT_1 = \
140 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<1>, 1>>(workspace); \
141 if (MDEW_MDLEANEVENT_1) \
142 funcname<MDLeanEvent<1>, 1>(MDEW_MDLEANEVENT_1); \
143 MDEventWorkspace<MDLeanEvent<2>, 2>::sptr MDEW_MDLEANEVENT_2 = \
144 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<2>, 2>>(workspace); \
145 if (MDEW_MDLEANEVENT_2) \
146 funcname<MDLeanEvent<2>, 2>(MDEW_MDLEANEVENT_2); \
147 MDEventWorkspace<MDLeanEvent<3>, 3>::sptr MDEW_MDLEANEVENT_3 = \
148 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<3>, 3>>(workspace); \
149 if (MDEW_MDLEANEVENT_3) \
150 funcname<MDLeanEvent<3>, 3>(MDEW_MDLEANEVENT_3); \
151 MDEventWorkspace<MDLeanEvent<4>, 4>::sptr MDEW_MDLEANEVENT_4 = \
152 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<4>, 4>>(workspace); \
153 if (MDEW_MDLEANEVENT_4) \
154 funcname<MDLeanEvent<4>, 4>(MDEW_MDLEANEVENT_4); \
155 MDEventWorkspace<MDLeanEvent<5>, 5>::sptr MDEW_MDLEANEVENT_5 = \
156 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<5>, 5>>(workspace); \
157 if (MDEW_MDLEANEVENT_5) \
158 funcname<MDLeanEvent<5>, 5>(MDEW_MDLEANEVENT_5); \
159 MDEventWorkspace<MDLeanEvent<6>, 6>::sptr MDEW_MDLEANEVENT_6 = \
160 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<6>, 6>>(workspace); \
161 if (MDEW_MDLEANEVENT_6) \
162 funcname<MDLeanEvent<6>, 6>(MDEW_MDLEANEVENT_6); \
163 MDEventWorkspace<MDLeanEvent<7>, 7>::sptr MDEW_MDLEANEVENT_7 = \
164 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<7>, 7>>(workspace); \
165 if (MDEW_MDLEANEVENT_7) \
166 funcname<MDLeanEvent<7>, 7>(MDEW_MDLEANEVENT_7); \
167 MDEventWorkspace<MDLeanEvent<8>, 8>::sptr MDEW_MDLEANEVENT_8 = \
168 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<8>, 8>>(workspace); \
169 if (MDEW_MDLEANEVENT_8) \
170 funcname<MDLeanEvent<8>, 8>(MDEW_MDLEANEVENT_8); \
171 MDEventWorkspace<MDLeanEvent<9>, 9>::sptr MDEW_MDLEANEVENT_9 = \
172 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<9>, 9>>(workspace); \
173 if (MDEW_MDLEANEVENT_9) \
174 funcname<MDLeanEvent<9>, 9>(MDEW_MDLEANEVENT_9); \
175 MDEventWorkspace<MDEvent<1>, 1>::sptr MDEW_MDEVENT_1 = \
176 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<1>, 1>>(workspace); \
177 if (MDEW_MDEVENT_1) \
178 funcname<MDEvent<1>, 1>(MDEW_MDEVENT_1); \
179 MDEventWorkspace<MDEvent<2>, 2>::sptr MDEW_MDEVENT_2 = \
180 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<2>, 2>>(workspace); \
181 if (MDEW_MDEVENT_2) \
182 funcname<MDEvent<2>, 2>(MDEW_MDEVENT_2); \
183 MDEventWorkspace<MDEvent<3>, 3>::sptr MDEW_MDEVENT_3 = \
184 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<3>, 3>>(workspace); \
185 if (MDEW_MDEVENT_3) \
186 funcname<MDEvent<3>, 3>(MDEW_MDEVENT_3); \
187 MDEventWorkspace<MDEvent<4>, 4>::sptr MDEW_MDEVENT_4 = \
188 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<4>, 4>>(workspace); \
189 if (MDEW_MDEVENT_4) \
190 funcname<MDEvent<4>, 4>(MDEW_MDEVENT_4); \
191 MDEventWorkspace<MDEvent<5>, 5>::sptr MDEW_MDEVENT_5 = \
192 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<5>, 5>>(workspace); \
193 if (MDEW_MDEVENT_5) \
194 funcname<MDEvent<5>, 5>(MDEW_MDEVENT_5); \
195 MDEventWorkspace<MDEvent<6>, 6>::sptr MDEW_MDEVENT_6 = \
196 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<6>, 6>>(workspace); \
197 if (MDEW_MDEVENT_6) \
198 funcname<MDEvent<6>, 6>(MDEW_MDEVENT_6); \
199 MDEventWorkspace<MDEvent<7>, 7>::sptr MDEW_MDEVENT_7 = \
200 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<7>, 7>>(workspace); \
201 if (MDEW_MDEVENT_7) \
202 funcname<MDEvent<7>, 7>(MDEW_MDEVENT_7); \
203 MDEventWorkspace<MDEvent<8>, 8>::sptr MDEW_MDEVENT_8 = \
204 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<8>, 8>>(workspace); \
205 if (MDEW_MDEVENT_8) \
206 funcname<MDEvent<8>, 8>(MDEW_MDEVENT_8); \
207 MDEventWorkspace<MDEvent<9>, 9>::sptr MDEW_MDEVENT_9 = \
208 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<9>, 9>>(workspace); \
209 if (MDEW_MDEVENT_9) \
210 funcname<MDEvent<9>, 9>(MDEW_MDEVENT_9); \
211 }
212
220#define CALL_MDEVENT_FUNCTION3(funcname, workspace) \
221 { \
222 MDEventWorkspace<MDLeanEvent<3>, 3>::sptr MDEW_MDLEANEVENT_3 = \
223 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<3>, 3>>(workspace); \
224 if (MDEW_MDLEANEVENT_3) \
225 funcname<MDLeanEvent<3>, 3>(MDEW_MDLEANEVENT_3); \
226 MDEventWorkspace<MDLeanEvent<4>, 4>::sptr MDEW_MDLEANEVENT_4 = \
227 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<4>, 4>>(workspace); \
228 if (MDEW_MDLEANEVENT_4) \
229 funcname<MDLeanEvent<4>, 4>(MDEW_MDLEANEVENT_4); \
230 MDEventWorkspace<MDLeanEvent<5>, 5>::sptr MDEW_MDLEANEVENT_5 = \
231 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<5>, 5>>(workspace); \
232 if (MDEW_MDLEANEVENT_5) \
233 funcname<MDLeanEvent<5>, 5>(MDEW_MDLEANEVENT_5); \
234 MDEventWorkspace<MDLeanEvent<6>, 6>::sptr MDEW_MDLEANEVENT_6 = \
235 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<6>, 6>>(workspace); \
236 if (MDEW_MDLEANEVENT_6) \
237 funcname<MDLeanEvent<6>, 6>(MDEW_MDLEANEVENT_6); \
238 MDEventWorkspace<MDLeanEvent<7>, 7>::sptr MDEW_MDLEANEVENT_7 = \
239 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<7>, 7>>(workspace); \
240 if (MDEW_MDLEANEVENT_7) \
241 funcname<MDLeanEvent<7>, 7>(MDEW_MDLEANEVENT_7); \
242 MDEventWorkspace<MDLeanEvent<8>, 8>::sptr MDEW_MDLEANEVENT_8 = \
243 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<8>, 8>>(workspace); \
244 if (MDEW_MDLEANEVENT_8) \
245 funcname<MDLeanEvent<8>, 8>(MDEW_MDLEANEVENT_8); \
246 MDEventWorkspace<MDLeanEvent<9>, 9>::sptr MDEW_MDLEANEVENT_9 = \
247 std::dynamic_pointer_cast<MDEventWorkspace<MDLeanEvent<9>, 9>>(workspace); \
248 if (MDEW_MDLEANEVENT_9) \
249 funcname<MDLeanEvent<9>, 9>(MDEW_MDLEANEVENT_9); \
250 MDEventWorkspace<MDEvent<3>, 3>::sptr MDEW_MDEVENT_3 = \
251 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<3>, 3>>(workspace); \
252 if (MDEW_MDEVENT_3) \
253 funcname<MDEvent<3>, 3>(MDEW_MDEVENT_3); \
254 MDEventWorkspace<MDEvent<4>, 4>::sptr MDEW_MDEVENT_4 = \
255 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<4>, 4>>(workspace); \
256 if (MDEW_MDEVENT_4) \
257 funcname<MDEvent<4>, 4>(MDEW_MDEVENT_4); \
258 MDEventWorkspace<MDEvent<5>, 5>::sptr MDEW_MDEVENT_5 = \
259 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<5>, 5>>(workspace); \
260 if (MDEW_MDEVENT_5) \
261 funcname<MDEvent<5>, 5>(MDEW_MDEVENT_5); \
262 MDEventWorkspace<MDEvent<6>, 6>::sptr MDEW_MDEVENT_6 = \
263 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<6>, 6>>(workspace); \
264 if (MDEW_MDEVENT_6) \
265 funcname<MDEvent<6>, 6>(MDEW_MDEVENT_6); \
266 MDEventWorkspace<MDEvent<7>, 7>::sptr MDEW_MDEVENT_7 = \
267 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<7>, 7>>(workspace); \
268 if (MDEW_MDEVENT_7) \
269 funcname<MDEvent<7>, 7>(MDEW_MDEVENT_7); \
270 MDEventWorkspace<MDEvent<8>, 8>::sptr MDEW_MDEVENT_8 = \
271 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<8>, 8>>(workspace); \
272 if (MDEW_MDEVENT_8) \
273 funcname<MDEvent<8>, 8>(MDEW_MDEVENT_8); \
274 MDEventWorkspace<MDEvent<9>, 9>::sptr MDEW_MDEVENT_9 = \
275 std::dynamic_pointer_cast<MDEventWorkspace<MDEvent<9>, 9>>(workspace); \
276 if (MDEW_MDEVENT_9) \
277 funcname<MDEvent<9>, 9>(MDEW_MDEVENT_9); \
278 }
279
287#define CONST_CALL_MDEVENT_FUNCTION(funcname, workspace) \
288 { \
289 const MDEventWorkspace<MDLeanEvent<1>, 1>::sptr CONST_MDEW_MDLEANEVENT_1 = \
290 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<1>, 1>>(workspace); \
291 if (CONST_MDEW_MDLEANEVENT_1) \
292 funcname<MDLeanEvent<1>, 1>(CONST_MDEW_MDLEANEVENT_1); \
293 const MDEventWorkspace<MDLeanEvent<2>, 2>::sptr CONST_MDEW_MDLEANEVENT_2 = \
294 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<2>, 2>>(workspace); \
295 if (CONST_MDEW_MDLEANEVENT_2) \
296 funcname<MDLeanEvent<2>, 2>(CONST_MDEW_MDLEANEVENT_2); \
297 const MDEventWorkspace<MDLeanEvent<3>, 3>::sptr CONST_MDEW_MDLEANEVENT_3 = \
298 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<3>, 3>>(workspace); \
299 if (CONST_MDEW_MDLEANEVENT_3) \
300 funcname<MDLeanEvent<3>, 3>(CONST_MDEW_MDLEANEVENT_3); \
301 const MDEventWorkspace<MDLeanEvent<4>, 4>::sptr CONST_MDEW_MDLEANEVENT_4 = \
302 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<4>, 4>>(workspace); \
303 if (CONST_MDEW_MDLEANEVENT_4) \
304 funcname<MDLeanEvent<4>, 4>(CONST_MDEW_MDLEANEVENT_4); \
305 const MDEventWorkspace<MDLeanEvent<5>, 5>::sptr CONST_MDEW_MDLEANEVENT_5 = \
306 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<5>, 5>>(workspace); \
307 if (CONST_MDEW_MDLEANEVENT_5) \
308 funcname<MDLeanEvent<5>, 5>(CONST_MDEW_MDLEANEVENT_5); \
309 const MDEventWorkspace<MDLeanEvent<6>, 6>::sptr CONST_MDEW_MDLEANEVENT_6 = \
310 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<6>, 6>>(workspace); \
311 if (CONST_MDEW_MDLEANEVENT_6) \
312 funcname<MDLeanEvent<6>, 6>(CONST_MDEW_MDLEANEVENT_6); \
313 const MDEventWorkspace<MDLeanEvent<7>, 7>::sptr CONST_MDEW_MDLEANEVENT_7 = \
314 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<7>, 7>>(workspace); \
315 if (CONST_MDEW_MDLEANEVENT_7) \
316 funcname<MDLeanEvent<7>, 7>(CONST_MDEW_MDLEANEVENT_7); \
317 const MDEventWorkspace<MDLeanEvent<8>, 8>::sptr CONST_MDEW_MDLEANEVENT_8 = \
318 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<8>, 8>>(workspace); \
319 if (CONST_MDEW_MDLEANEVENT_8) \
320 funcname<MDLeanEvent<8>, 8>(CONST_MDEW_MDLEANEVENT_8); \
321 const MDEventWorkspace<MDLeanEvent<9>, 9>::sptr CONST_MDEW_MDLEANEVENT_9 = \
322 std::dynamic_pointer_cast<const MDEventWorkspace<MDLeanEvent<9>, 9>>(workspace); \
323 if (CONST_MDEW_MDLEANEVENT_9) \
324 funcname<MDLeanEvent<9>, 9>(CONST_MDEW_MDLEANEVENT_9); \
325 const MDEventWorkspace<MDEvent<1>, 1>::sptr CONST_MDEW_MDEVENT_1 = \
326 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<1>, 1>>(workspace); \
327 if (CONST_MDEW_MDEVENT_1) \
328 funcname<MDEvent<1>, 1>(CONST_MDEW_MDEVENT_1); \
329 const MDEventWorkspace<MDEvent<2>, 2>::sptr CONST_MDEW_MDEVENT_2 = \
330 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<2>, 2>>(workspace); \
331 if (CONST_MDEW_MDEVENT_2) \
332 funcname<MDEvent<2>, 2>(CONST_MDEW_MDEVENT_2); \
333 const MDEventWorkspace<MDEvent<3>, 3>::sptr CONST_MDEW_MDEVENT_3 = \
334 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<3>, 3>>(workspace); \
335 if (CONST_MDEW_MDEVENT_3) \
336 funcname<MDEvent<3>, 3>(CONST_MDEW_MDEVENT_3); \
337 const MDEventWorkspace<MDEvent<4>, 4>::sptr CONST_MDEW_MDEVENT_4 = \
338 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<4>, 4>>(workspace); \
339 if (CONST_MDEW_MDEVENT_4) \
340 funcname<MDEvent<4>, 4>(CONST_MDEW_MDEVENT_4); \
341 const MDEventWorkspace<MDEvent<5>, 5>::sptr CONST_MDEW_MDEVENT_5 = \
342 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<5>, 5>>(workspace); \
343 if (CONST_MDEW_MDEVENT_5) \
344 funcname<MDEvent<5>, 5>(CONST_MDEW_MDEVENT_5); \
345 const MDEventWorkspace<MDEvent<6>, 6>::sptr CONST_MDEW_MDEVENT_6 = \
346 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<6>, 6>>(workspace); \
347 if (CONST_MDEW_MDEVENT_6) \
348 funcname<MDEvent<6>, 6>(CONST_MDEW_MDEVENT_6); \
349 const MDEventWorkspace<MDEvent<7>, 7>::sptr CONST_MDEW_MDEVENT_7 = \
350 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<7>, 7>>(workspace); \
351 if (CONST_MDEW_MDEVENT_7) \
352 funcname<MDEvent<7>, 7>(CONST_MDEW_MDEVENT_7); \
353 const MDEventWorkspace<MDEvent<8>, 8>::sptr CONST_MDEW_MDEVENT_8 = \
354 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<8>, 8>>(workspace); \
355 if (CONST_MDEW_MDEVENT_8) \
356 funcname<MDEvent<8>, 8>(CONST_MDEW_MDEVENT_8); \
357 const MDEventWorkspace<MDEvent<9>, 9>::sptr CONST_MDEW_MDEVENT_9 = \
358 std::dynamic_pointer_cast<const MDEventWorkspace<MDEvent<9>, 9>>(workspace); \
359 if (CONST_MDEW_MDEVENT_9) \
360 funcname<MDEvent<9>, 9>(CONST_MDEW_MDEVENT_9); \
361 }
362
363// ------------- Typedefs for MDBox ------------------
364
401
402// ------------- Typedefs for MDBoxBase ------------------
403
440
441// ------------- Typedefs for MDGridBox ------------------
442
479
480// ------------- Typedefs for MDEventWorkspace ------------------
481
518
519// ------------- Typedefs for MDBin ------------------
520
557
558/* CODE ABOWE WAS AUTO-GENERATED BY generate_mdevent_declarations.py - DO NOT
559 * EDIT! */
560
561//### END AUTO-GENERATED CODE
562//##################################################################
563
564} // namespace DataObjects
565} // namespace Mantid
#define UNDEF_SIZET
Definition: MDTypes.h:60
This class is used by MDBox and MDGridBox in order to intelligently determine optimal behavior.
Definition: BoxController.h:33
Abstract base class for multi-dimension event workspaces (MDEventWorkspace).
MDEventFactory : collection of methods to create MDLeanEvent* instances, by specifying the number of ...
MDBin : Class describing a single bin in a dense, Multidimensional histogram.
Definition: MDBin.h:32
Templated super-class of a multi-dimensional event "box".
Definition: MDBoxBase.h:50
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.