Mantid
Loading...
Searching...
No Matches
DataBlock.cpp
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 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 +
10
11#include <limits>
12#include <vector>
13
14namespace Mantid::DataHandling {
15
16// Defines a negative value which is not something which spectra
17// indices can have.
18
20 : m_numberOfPeriods(0), m_numberOfSpectra(0), m_numberOfChannels(0),
21 m_minSpectraID(std::numeric_limits<specnum_t>::max()), m_maxSpectraID(0) {}
22
24 : m_numberOfPeriods(static_cast<int>(data.dim0())), m_numberOfSpectra(data.dim1()), m_numberOfChannels(data.dim2()),
25 m_minSpectraID(std::numeric_limits<specnum_t>::max()), m_maxSpectraID(0) {}
26
27DataBlock::DataBlock(size_t numberOfPeriods, size_t numberOfSpectra, size_t numberOfChannels)
28 : m_numberOfPeriods(numberOfPeriods), m_numberOfSpectra(numberOfSpectra), m_numberOfChannels(numberOfChannels),
29 m_minSpectraID(std::numeric_limits<specnum_t>::max()), m_maxSpectraID(0) {}
30
32
34
36
38
40
42
44
45std::unique_ptr<DataBlockGenerator> DataBlock::getGenerator() const {
46 std::vector<SpectrumPair> interval{std::make_pair(m_minSpectraID, m_maxSpectraID)};
47 return std::make_unique<DataBlockGenerator>(interval);
48}
49
50bool DataBlock::operator==(const DataBlock &other) const {
51 return (m_numberOfPeriods == other.m_numberOfPeriods) && (m_numberOfChannels == other.m_numberOfChannels) &&
52 (m_numberOfSpectra == other.m_numberOfSpectra) && (m_minSpectraID == other.m_minSpectraID) &&
53 (m_maxSpectraID == other.m_maxSpectraID);
54}
55
56} // namespace Mantid::DataHandling
DataBlock: The DataBlock class holds information about a contiguous block of spectrum numbers.
Definition DataBlock.h:28
virtual specnum_t getMaxSpectrumID() const
Definition DataBlock.cpp:35
virtual size_t getNumberOfChannels() const
Definition DataBlock.cpp:43
virtual void setMaxSpectrumID(specnum_t minSpecID)
Definition DataBlock.cpp:37
virtual std::unique_ptr< DataBlockGenerator > getGenerator() const
Definition DataBlock.cpp:45
virtual size_t getNumberOfSpectra() const
Definition DataBlock.cpp:39
virtual size_t getNumberOfPeriods() const
Definition DataBlock.cpp:41
bool operator==(const DataBlock &other) const
Definition DataBlock.cpp:50
virtual specnum_t getMinSpectrumID() const
Definition DataBlock.cpp:31
virtual void setMinSpectrumID(specnum_t minSpecID)
Definition DataBlock.cpp:33
Templated class implementation of NXDataSet.
int32_t specnum_t
Typedef for a spectrum Number.
Definition IDTypes.h:14
STL namespace.