14const std::string MICROSEC(
"microseconds");
20 : m_bankEntries(bankEntryNames), m_loader(
std::move(loader)), m_calibFactory(calibFactory) {}
25 const size_t bank_index)
const {
32 const std::vector<size_t> &slabsizes,
33 std::unique_ptr<std::vector<uint32_t>> &detId_vec,
34 std::unique_ptr<std::vector<float>> &tof_vec)
const {
37 m_loader->loadData(detID_SDS, detId_vec, offsets, slabsizes);
40 m_loader->loadData(tof_SDS, tof_vec, offsets, slabsizes);
46 std::unique_ptr<std::vector<uint64_t>> *event_index)
const {
47 return m_loader->getEventIndexRanges(event_group, number_events, event_index);
51 const uint64_t number_events)
const {
52 return m_loader->getEventIndexSplitRanges(event_group, number_events);
55std::string
toLogString(
const std::string &bankName,
const size_t total_events_to_read,
56 const std::vector<size_t> &offsets,
const std::vector<size_t> &slabsizes) {
57 std::ostringstream oss;
58 oss <<
"Processing " << bankName <<
" with " << total_events_to_read <<
" events in the ranges: ";
59 for (
size_t i = 0; i < offsets.size(); ++i) {
60 oss <<
"[" << offsets[i] <<
", " << (offsets[i] + slabsizes[i]) <<
"), ";
std::vector< BankCalibration > getCalibrations(const double time_conversion, const size_t bank_index) const
Select which detector ids go into the output group.
const std::vector< std::string > m_bankEntries
ProcessBankTaskBase(std::vector< std::string > &bankEntryNames, std::shared_ptr< NexusLoader > loader, const BankCalibrationFactory &calibFactory)
const std::string & bankName(const size_t wksp_index) const
std::shared_ptr< const NexusLoader > m_loader
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)
MANTID_KERNEL_DLL double timeConversionValue(const std::string &input_unit, const std::string &output_unit)