11#include "MantidDataObjects/DllConfig.h"
14#include <boost/date_time/posix_time/posix_time.hpp>
22namespace DataObjects {
23class EventWorkspaceMRU;
36 const std::string
id()
const override {
return "EventWorkspace"; }
45 std::unique_ptr<EventWorkspace>
clone()
const {
return std::unique_ptr<EventWorkspace>(doClone()); }
48 std::unique_ptr<EventWorkspace>
cloneEmpty()
const {
return std::unique_ptr<EventWorkspace>(doCloneEmpty()); }
51 void init(
const std::size_t &,
const std::size_t &,
const std::size_t &)
override;
52 void init(
const HistogramData::Histogram &histogram)
override;
59 bool isRaggedWorkspace()
const override;
62 std::size_t size()
const override;
65 std::size_t blocksize()
const override;
67 std::size_t getNumberBins(
const std::size_t &
index)
const override;
69 std::size_t getMaxNumberBins()
const override;
72 std::size_t getNumberHistograms()
const override;
74 size_t getMemorySize()
const override;
77 invalidateCommonBinsFlag();
78 return getSpectrumWithoutInvalidation(
index);
85 double getTofMin()
const override;
87 double getTofMax()
const override;
89 Mantid::Types::Core::DateAndTime getPulseTimeMin()
const override;
90 Mantid::Types::Core::DateAndTime getPulseTimeMax()
const override;
91 void getPulseTimeMinMax(Mantid::Types::Core::DateAndTime &xmin, Mantid::Types::Core::DateAndTime &xmax)
const;
93 Mantid::Types::Core::DateAndTime getTimeAtSampleMin(
double tofOffset = 0)
const override;
95 Mantid::Types::Core::DateAndTime getTimeAtSampleMax(
double tofOffset = 0)
const override;
97 double getEventXMin()
const;
98 double getEventXMax()
const;
99 void getEventXMinMax(
double &xmin,
double &xmax)
const;
101 [[deprecated(
"use mutableX() instead")]]
102 MantidVec &dataX(
const std::size_t)
override;
103 [[deprecated(
"use mutableY() instead")]]
104 MantidVec &dataY(
const std::size_t)
override;
105 [[deprecated(
"use mutableE() instead")]]
106 MantidVec &dataE(
const std::size_t)
override;
107 [[deprecated(
"use mutableDx() instead")]]
108 MantidVec &dataDx(
const std::size_t)
override;
109 [[deprecated(
"use x() instead")]]
110 const MantidVec &dataX(
const std::size_t)
const override;
111 [[deprecated(
"use y() instead")]]
112 const MantidVec &dataY(
const std::size_t)
const override;
113 [[deprecated(
"use e() instead")]]
114 const MantidVec &dataE(
const std::size_t)
const override;
115 [[deprecated(
"use dx() instead")]]
116 const MantidVec &dataDx(
const std::size_t)
const override;
117 [[deprecated(
"use sharedX() instead")]]
122 bool skipError =
false)
const override;
125 void generateHistogramPulseTime(
const std::size_t
index, std::span<double const> X,
MantidVec &Y,
MantidVec &E,
126 bool skipError =
false)
const;
129 void setAllX(
const HistogramData::BinEdges &x)
override;
132 void resetAllXToSingleBin()
override;
135 std::size_t getNumberEvents()
const override;
145 bool isHistogramData()
const override;
147 std::size_t MRUSize()
const;
149 void clearMRU()
const override;
156 void getIntegratedSpectra(std::vector<double> &out,
const double minX,
const double maxX,
157 const bool entireRange)
const override;
168 EventList &getSpectrumWithoutInvalidation(
const size_t index)
override;
173 std::vector<std::unique_ptr<EventList>>
data;
176 mutable std::unique_ptr<EventWorkspaceMRU>
mru;
191#ifndef DataObjects_EXPORTS
195extern template class MANTID_DATAOBJECTS_DLL WorkspaceProperty<DataObjects::EventWorkspace>;
MANTID_DATAOBJECTS_EXTERN_TEMPLATE(Mantid::Kernel::PropertyWithValue< std::shared_ptr< Mantid::DataObjects::EventWorkspace > >)
std::map< DeltaEMode::Type, std::string > index
This class provides an interface to an EventWorkspace.
Helper class for reporting progress from algorithms.
This class is intended to fulfill the design specified in <https://github.com/mantidproject/documents...
std::vector< std::unique_ptr< EventList > > data
A vector that holds the event list for each spectrum; the key is the workspace index,...
EventList & getSpectrum(const size_t index) override
Return the underlying ISpectrum ptr at the given workspace index.
const std::string id() const override
Return the workspace typeID.
EventWorkspace & operator=(const EventWorkspace &other)=delete
EventWorkspace * doClone() const override
Virtual clone method. Not implemented to force implementation in children.
EventWorkspace * doCloneEmpty() const override
Virtual cloneEmpty method.
std::unique_ptr< EventWorkspaceMRU > mru
Container for the MRU lists of the event lists contained.
std::unique_ptr< EventWorkspace > clone() const
Returns a clone of the workspace.
std::unique_ptr< EventWorkspace > cloneEmpty() const
Returns a default-initialized clone of the workspace.
The concrete, templated class for properties.
Implements a copy on write data template.
EventType
What kind of event list is being stored.
std::shared_ptr< const EventWorkspace > EventWorkspace_const_sptr
shared pointer to a const Workspace2D
EventSortType
How the event list is sorted.
std::shared_ptr< EventWorkspace > EventWorkspace_sptr
shared pointer to the EventWorkspace class
std::enable_if< std::is_pointer< Arg >::value, bool >::type threadSafe(Arg workspace)
Thread-safety check Checks the workspace to ensure it is suitable for multithreaded access.
Helper class which provides the Collimation Length for SANS instruments.
std::vector< double > MantidVec
typedef for the data storage used in Mantid matrix workspaces