12#include "MantidAlgorithms/DllConfig.h"
27class TimeAtSampleStrategy;
46 const std::string
name()
const override {
return "FilterEvents"; }
48 const std::string
summary()
const override {
49 return "Filter events from an EventWorkspace to one or multiple target "
50 "event workspaces according to a series of splitters.";
54 int version()
const override {
return 1; }
55 const std::vector<std::string>
seeAlso()
const override {
56 return {
"GenerateEventsFilter",
"FilterByTime",
"FilterByLogValue"};
60 const std::string
category()
const override {
return "Events\\EventFiltering"; }
61 std::map<std::string, std::string> validateInputs()
override;
70 void processAlgorithmProperties();
73 void parseInputSplitters();
76 void createOutputWorkspaces();
79 void setupDetectorTOFCalibration();
93 void setupCustomizedTOFCorrection();
96 void filterEvents(
double progressamount);
99 void examineEventWS();
101 void groupOutputWorkspace();
std::map< DeltaEMode::Type, std::string > index
Base class from which all concrete algorithm classes should be derived.
TimeAtSampleStrategy : Strategy (technique dependent) for determining Time At Sample.
FilterEvents : Filter Events in EventWorkspace to multiple EventsWorkspace by Splitters.
std::vector< std::string > m_wsNames
bool m_isSplittersRelativeTime
DataObjects::SplittersWorkspace_sptr m_splittersWorkspace
std::vector< double > m_detTofOffsets
std::vector< bool > m_vecSkip
Vector for skip information.
DataObjects::TimeSplitter m_timeSplitter
std::vector< double > m_detTofFactors
Types::Core::DateAndTime m_filterStartTime
bool m_toGroupWS
Flag to group workspace.
int version() const override
Algorithm's version for identification overriding a virtual method.
std::set< int > m_targetWorkspaceIndexSet
std::map< int, DataObjects::EventWorkspace_sptr > m_outputWorkspacesMap
std::vector< int > m_vecSplitterGroup
Vector for splitting group.
std::string m_outputWSNameBase
Base of output workspace's name.
EVENTFILTERSKIP m_specSkipType
Spectrum skip type.
std::vector< int64_t > m_vecSplitterTime
Vector for splitting time FIXME - shall we convert this to DateAndTime???.
DataObjects::TableWorkspace_sptr m_informationWS
TOFCorrectionType m_tofCorrType
TOF detector/sample correction type.
DataObjects::TableWorkspace_sptr m_detCorrectWorkspace
DataObjects::EventWorkspace_sptr m_eventWS
const std::string summary() const override
Summary of algorithms purpose.
API::MatrixWorkspace_sptr m_matrixSplitterWS
const std::string category() const override
Algorithm's category for identification overriding a virtual method.
const std::vector< std::string > seeAlso() const override
Function to return all of the seeAlso algorithms related to this algorithm.
DataObjects::TableWorkspace_sptr m_splitterTableWorkspace
const std::string name() const override
Algorithm's name for identification overriding a virtual method.
TimeROI : Object that holds information about when the time measurement was active.
std::shared_ptr< MatrixWorkspace > MatrixWorkspace_sptr
shared pointer to the matrix workspace base class
std::shared_ptr< SplittersWorkspace > SplittersWorkspace_sptr
std::shared_ptr< TableWorkspace > TableWorkspace_sptr
shared pointer to Mantid::DataObjects::TableWorkspace
std::shared_ptr< EventWorkspace > EventWorkspace_sptr
shared pointer to the EventWorkspace class
Helper class which provides the Collimation Length for SANS instruments.