Event Filtering

In MantidPlot, there are a few algorithms working with event filtering. These algorithms are FilterByTime v1, FilterByLogValue v1, FilterEvents v1, and GenerateEventsFilter v1.

How to generate event filters

Generating filters explicitly

FilterEvents v1 reads and parses a mantid.api.ISplittersWorkspace object to generate a list of SplittingIntervals, which are used to split neutron events to specified output workspaces according to the times that they arrive detectors.

There can be two approaches to create a mantid.api.ISplittersWorkspace.

Generating inexplicit filters

FilterByTime v1 and FilterByLogValue v1 generate event filters during execution.

GenerateEventsFilter v1 and FilterEvents v1 vs FilterByTime v1 and FilterByLogValue v1

Types of events filters

Filtering by Splitting Interval

Splitting Interval is an individual class to indicate an independent time splitter. Any event can be filtered by a Splitting Interval object.

Splitters Workspace is a TableWorkspace that stors a set of Splitting Interval.

Filtering by duplicate entries/booleans

Duplicate entries in a TimeSeriesProperty and boolean type of TimeSeriesProperty are used in MantidPlot too to serve as time splitters.

These two are applied in the MantidPlot log viewing functionality and unfortunately intrudes into TimeSeriesProperty.

As time splitters are better to be isolated from logs, which are recorded in TimeSeriesProperty, it is not recommended to set up event filters by this approach.

Category: Concepts