Mantid
Loading...
Searching...
No Matches
ISplittersWorkspace.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2012 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
9#include "MantidAPI/DllConfig.h"
12
13namespace Mantid {
14namespace API {
15
21class MANTID_API_DLL ISplittersWorkspace {
22public:
23 /*
24 * Constructor
25 */
28 /*
29 * Destructor
30 */
31 virtual ~ISplittersWorkspace() = default;
32
34 std::unique_ptr<ISplittersWorkspace> clone() const { return std::unique_ptr<ISplittersWorkspace>(doClone()); }
35
36 /*
37 * Add a time splitter to table workspace
38 */
39 virtual void addSplitter(const Kernel::SplittingInterval &splitter) = 0;
40
41 /*
42 * Get the corresponding workspace index of a time
43 * Input time must the total nanoseconds of the absolute time from 1990.00.00
44 */
46
47 /*
48 * Get number of splitters
49 */
50 virtual size_t getNumberSplitters() const = 0;
51
52 /*
53 * Remove one entry of a splitter
54 */
55 virtual bool removeSplitter(size_t splitterindex) = 0;
56
57protected:
60
61private:
62 virtual ISplittersWorkspace *doClone() const = 0;
63};
64
66using ISplittersWorkspace_sptr = std::shared_ptr<ISplittersWorkspace>;
68using ISplittersWorkspace_const_sptr = std::shared_ptr<const ISplittersWorkspace>;
69
70} // namespace API
71} // namespace Mantid
72
73// Instantiated and exported by API/src/PropertyWithValue.cpp
74MANTID_API_EXTERN_TEMPLATE(Mantid::Kernel::PropertyWithValue<std::shared_ptr<Mantid::API::ISplittersWorkspace>>);
MANTID_API_EXTERN_TEMPLATE(Mantid::Kernel::PropertyWithValue< std::shared_ptr< Mantid::API::ISplittersWorkspace > >)
std::map< DeltaEMode::Type, std::string > index
ISplittersWorkspace : Workspace to contain splitters for event filtering.
virtual ~ISplittersWorkspace()=default
ISplittersWorkspace(const ISplittersWorkspace &)=default
Protected copy constructor. May be used by childs for cloning.
virtual bool removeSplitter(size_t splitterindex)=0
virtual ISplittersWorkspace * doClone() const =0
virtual size_t getNumberSplitters() const =0
std::unique_ptr< ISplittersWorkspace > clone() const
Returns a clone of the workspace.
virtual void addSplitter(const Kernel::SplittingInterval &splitter)=0
ISplittersWorkspace & operator=(const ISplittersWorkspace &other)=delete
virtual Kernel::SplittingInterval getSplitter(size_t index)=0
The concrete, templated class for properties.
Class holding a start/end time and a destination for splitting event lists and logs.
std::shared_ptr< ISplittersWorkspace > ISplittersWorkspace_sptr
Typedef for a shared pointer to TableWorkspace.
std::shared_ptr< const ISplittersWorkspace > ISplittersWorkspace_const_sptr
Typedef for a shared pointer to const TableWorkspace.
Helper class which provides the Collimation Length for SANS instruments.