Mantid
Loading...
Searching...
No Matches
LogFilter.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2007 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//----------------------------------------------------------------------
10// Includes
11//----------------------------------------------------------------------
12#include "MantidKernel/DllConfig.h"
13
14#include <memory>
15#include <vector>
16
17namespace Mantid {
18namespace Kernel {
19
20class TimeROI;
21
22//----------------------------------------------------------------------
23// Forward declarations
24//----------------------------------------------------------------------
25class Property;
26template <class TYPE> class FilteredTimeSeriesProperty;
27template <class TYPE> class TimeSeriesProperty;
28
32class MANTID_KERNEL_DLL LogFilter {
33public:
35 LogFilter() = delete;
36
38 LogFilter(const LogFilter &) = delete;
39 LogFilter &operator=(const LogFilter &) = delete;
40
45 LogFilter(const Property *prop);
48 LogFilter(const TimeSeriesProperty<double> *timeSeries);
49
51 void addFilter(const TimeSeriesProperty<bool> &filter);
53 inline FilteredTimeSeriesProperty<double> *data() const { return m_prop.get(); }
55 inline const TimeSeriesProperty<bool> *filter() const { return m_filter.get(); }
57 void clear();
58
59private:
62 FilteredTimeSeriesProperty<double> *convertToTimeSeriesOfDouble(const Property *prop);
63 void setFilter(const TimeROI &roi, const bool filterOpenEnded);
64
66 std::unique_ptr<FilteredTimeSeriesProperty<double>> m_prop;
68 std::unique_ptr<TimeSeriesProperty<bool>> m_filter;
69};
70
71} // namespace Kernel
72} // namespace Mantid
Templated class that defines a filtered time series but still gives access to the original data.
This class is for filtering TimeSeriesProperty data.
Definition LogFilter.h:32
std::unique_ptr< FilteredTimeSeriesProperty< double > > m_prop
Owned pointer to the filtered property.
Definition LogFilter.h:66
LogFilter & operator=(const LogFilter &)=delete
const TimeSeriesProperty< bool > * filter() const
Returns a reference to the filter.
Definition LogFilter.h:55
FilteredTimeSeriesProperty< double > * data() const
Returns reference to the filtered property.
Definition LogFilter.h:53
LogFilter(const LogFilter &)=delete
Disable copy and assignment operator.
std::unique_ptr< TimeSeriesProperty< bool > > m_filter
Owned pointer to the filter mask.
Definition LogFilter.h:68
LogFilter()=delete
Disable default constructor.
Base class for properties.
Definition Property.h:94
TimeROI : Object that holds information about when the time measurement was active.
Definition TimeROI.h:18
A specialised Property class for holding a series of time-value pairs.
Helper class which provides the Collimation Length for SANS instruments.