11#include "MantidMDAlgorithms/DllConfig.h"
15namespace MDAlgorithms {
53 size_t nDimensions()
const;
59 void addMDData(std::vector<float> &sigErr, std::vector<uint16_t> &expInfoIndex,
60 std::vector<uint16_t> &goniometerIndex, std::vector<uint32_t> &detId, std::vector<coord_t> &Coord,
61 size_t dataSize)
const;
64 void releaseWorkspace();
80 enum { MAX_N_DIM = 8 };
102 template <
size_t i>
friend class LOOP;
107 void addMDDataND(
const float *sigErr,
const uint16_t *expInfoIndex,
const uint16_t *goniometerIndex,
108 const uint32_t *detId,
const coord_t *Coord,
size_t dataSize)
const;
110 void addAndTraceMDDataND(
float *sig_err, uint16_t *expInfoIndex, uint16_t *goniometerIndex, uint32_t *det_id,
111 coord_t *Coord,
size_t data_size)
const;
113 template <
size_t nd>
void calcCentroidND();
115 template <
size_t nd>
void createEmptyEventWS(
const MDWSDescription &description);
117 template <
size_t nd>
void splitBoxList();
MDEventFactory : collection of methods to create MDLeanEvent* instances, by specifying the number of ...
The ThreadScheduler object defines how tasks are allocated to threads and in what order.
std::vector< fpCreateWS > wsCreator
VECTORS OF FUNCTION POINTERS to different number of dimensions methdods vector holding function point...
size_t m_NDimensions
actual number of dimensions, initiated in current MD workspace; 0 if not initated;
bool ifNeedsSplitting() const
the accessor verify if there are boxes in box-splitter cash which need splitting;
void splitList(Kernel::ThreadScheduler *)
method splits list of boxes not yet uses thread sheduler but may be later
virtual ~MDEventWSWrapper()=default
API::IMDEventWorkspace_sptr m_Workspace
pointer to taret MD workspace:
std::vector< fpVoidMethod > mdBoxListSplitter
vector holding function pointers to the code, which split list of boxes need splitting
static size_t getMaxNDim()
get maximal number of dimensions, allowed for the algorithm and embedded in algorithm during compilat...
void addAndTraceMDDataND(float *sig_err, uint16_t *expInfoIndex, uint16_t *goniometerIndex, uint32_t *det_id, coord_t *Coord, size_t data_size) const
std::vector< fpVoidMethod > mdCalCentroid
vector holding function pointers to the code, which refreshes centroid (could it be moved to IMD?...
std::vector< fpAddData > mdEvAddAndForget
vector holding function pointers to the code, which adds diffrent dimension number events to the work...
API::IMDEventWorkspace_sptr pWorkspace()
get access to the internal workspace
helper class describes the properties of target MD workspace, which should be obtained as the result ...
std::shared_ptr< IMDEventWorkspace > IMDEventWorkspace_sptr
Shared pointer to Mantid::API::IMDEventWorkspace.
Holds support functions for strings.
void(MDEventWSWrapper::*)(const float *, const uint16_t *, const uint16_t *, const uint32_t *, const coord_t *, size_t) const fpAddData
signature for the internal templated function pointer to add data to an existing workspace
void(MDEventWSWrapper::*)(const MDWSDescription &) fpCreateWS
signature for the internal templated function pointer to create workspace
void(MDEventWSWrapper::*)() fpVoidMethod
signature to void templated function
Helper class which provides the Collimation Length for SANS instruments.
float coord_t
Typedef for the data type to use for coordinate axes in MD objects such as MDBox, MDEventWorkspace,...