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