Mantid
Loading...
Searching...
No Matches
LoadEventNexusIndexSetup.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2017 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#pragma once
8
10#include "MantidDataHandling/DllConfig.h"
11#include "MantidIndexing/IndexInfo.h"
12#include "MantidParallel/Communicator.h"
13
14namespace Mantid {
15namespace DataHandling {
16
27class MANTID_DATAHANDLING_DLL LoadEventNexusIndexSetup {
28public:
29 LoadEventNexusIndexSetup(API::MatrixWorkspace_const_sptr instrumentWorkspace, const int32_t min, const int32_t max,
30 std::vector<int32_t> range, Parallel::Communicator communicator = Parallel::Communicator());
31
32 std::pair<int32_t, int32_t> eventIDLimits() const;
33
34 Indexing::IndexInfo makeIndexInfo();
35 Indexing::IndexInfo makeIndexInfo(const std::vector<std::string> &bankNames);
36 Indexing::IndexInfo
37 makeIndexInfo(const std::pair<std::vector<int32_t>, std::vector<int32_t>> &spectrumDetectorMapping,
38 const bool monitorsOnly);
39
40private:
41 Indexing::IndexInfo filterIndexInfo(const Indexing::IndexInfo &indexInfo);
42
44 int32_t m_min;
45 int32_t m_max;
46 std::vector<int32_t> m_range;
47 const Parallel::Communicator m_communicator;
48};
49
50} // namespace DataHandling
51} // namespace Mantid
Helper for LoadEventNexus dealing with setting up indices (spectrum numbers an detector ID mapping) f...
const API::MatrixWorkspace_const_sptr m_instrumentWorkspace
std::shared_ptr< const MatrixWorkspace > MatrixWorkspace_const_sptr
shared pointer to the matrix workspace base class (const version)
Helper class which provides the Collimation Length for SANS instruments.