9#include "MantidDataHandling/DllConfig.h"
17namespace DataHandling {
48 : m_indexer(indexer), m_lastPulseIndex(m_indexer->getLastPulseIndex()) {
49 m_value.pulseIndex = pulseIndex;
50 calculateEventRange();
66 bool calculateEventRange();
72 PulseIndexer(std::shared_ptr<std::vector<uint64_t>
const>
const &event_index,
const std::size_t firstEventIndex,
73 const std::size_t numEvents,
const std::string &entry_name,
const std::vector<size_t> &pulse_roi);
76 size_t getFirstPulseIndex()
const;
78 size_t getLastPulseIndex()
const;
80 std::pair<size_t, size_t> getEventIndexRange(
const size_t pulseIndex)
const;
85 size_t getStartEventIndex(
const size_t pulseIndex)
const;
91 size_t getStopEventIndex(
const size_t pulseIndex)
const;
101 size_t determineFirstPulseIndex()
const;
102 size_t determineLastPulseIndex()
const;
104 bool includedPulse(
const size_t pulseIndex)
const;
const std::string & m_value
MANTID_NEXUS_DLL bool operator!=(std::string const &s, Mantid::Nexus::NexusAddress const &p)
MANTID_NEXUS_DLL bool operator==(std::string const &s, Mantid::Nexus::NexusAddress const &p)
PulseIndexer contains information for mapping from pulse index/number to event index.
std::size_t m_firstEventIndex
How far into the array of events the tof/detid are already.
std::vector< std::size_t > m_roi
Alternating values describe ranges of [use, don't) of pulse index ranges.
const std::shared_ptr< std::vector< uint64_t > const > m_event_index
vector of indices (length of # of pulses) into the event arrays
bool m_roi_complex
true when there is more to check than the pulse being between the ends
std::size_t m_numEvents
Total number of events tof/detid that should be processed.
const std::string m_entry_name
Name of the NXentry to be used in exceptions.
std::size_t m_numPulses
Total number of pulsetime/pulseindex.
MatrixWorkspace_sptr MANTID_API_DLL operator*(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Multiply two workspaces.
Helper class which provides the Collimation Length for SANS instruments.
std::size_t eventIndexStop
std::size_t eventIndexStart
const PulseIndexer * m_indexer
std::ptrdiff_t difference_type
Iterator(const PulseIndexer *indexer, const size_t pulseIndex)
std::input_iterator_tag iterator_category
const size_t m_lastPulseIndex