Mantid
Loading...
Searching...
No Matches
ProcessBankTaskBase.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2025 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
8#pragma once
12#include <H5Cpp.h>
13
15
17public:
18 ProcessBankTaskBase(std::vector<std::string> &bankEntryNames, std::shared_ptr<NexusLoader> loader,
19 const BankCalibrationFactory &calibFactory);
20 const std::string &bankName(const size_t wksp_index) const;
21 std::vector<BankCalibration> getCalibrations(const std::string &tof_unit, const size_t bank_index) const;
22
33 void loadEvents(H5::DataSet &detID_SDS, H5::DataSet &tof_SDS, const std::vector<size_t> &offsets,
34 const std::vector<size_t> &slabsizes, std::unique_ptr<std::vector<uint32_t>> &detId_vec,
35 std::unique_ptr<std::vector<float>> &tof_vec) const;
36
37 // these methods simply forward the calls to NexusLoader
38 std::stack<EventROI> getEventIndexRanges(H5::Group &event_group, const uint64_t number_events,
39 std::unique_ptr<std::vector<uint64_t>> *event_index = nullptr) const;
40 std::stack<std::pair<int, EventROI>> getEventIndexSplitRanges(H5::Group &event_group,
41 const uint64_t number_events) const;
42
43private:
44 const std::vector<std::string> m_bankEntries;
45 std::shared_ptr<const NexusLoader> m_loader;
48};
49
50std::string toLogString(const std::string &bankName, const size_t total_events_to_read,
51 const std::vector<size_t> &offsets, const std::vector<size_t> &slabsizes);
52} // namespace Mantid::DataHandling::AlignAndFocusPowderSlim
const std::string & bankName(const size_t wksp_index) const
std::stack< std::pair< int, EventROI > > getEventIndexSplitRanges(H5::Group &event_group, const uint64_t number_events) const
std::stack< EventROI > getEventIndexRanges(H5::Group &event_group, const uint64_t number_events, std::unique_ptr< std::vector< uint64_t > > *event_index=nullptr) const
std::vector< BankCalibration > getCalibrations(const std::string &tof_unit, const size_t bank_index) const
const BankCalibrationFactory & m_calibFactory
used to generate actual calibration
void loadEvents(H5::DataSet &detID_SDS, H5::DataSet &tof_SDS, const std::vector< size_t > &offsets, const std::vector< size_t > &slabsizes, std::unique_ptr< std::vector< uint32_t > > &detId_vec, std::unique_ptr< std::vector< float > > &tof_vec) const
Load detid and tof at the same time.
std::string toLogString(const std::string &bankName, const size_t total_events_to_read, const std::vector< size_t > &offsets, const std::vector< size_t > &slabsizes)