Mantid
Loading...
Searching...
No Matches
LoadILLIndirect2.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2014 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"
13
14namespace Mantid {
15namespace DataHandling {
16
20class MANTID_DATAHANDLING_DLL LoadILLIndirect2 : public API::IFileLoader<Kernel::NexusDescriptor> {
21public:
24 int confidence(Kernel::NexusDescriptor &descriptor) const override;
25
27 int version() const override { return 2; }
28 const std::vector<std::string> seeAlso() const override { return {"LoadNexus"}; }
29
30 const std::string name() const override;
32 const std::string summary() const override { return "Loads a ILL/IN16B nexus file."; }
33 const std::string category() const override;
34
35private:
36 void init() override;
37 void exec() override;
38
39 void loadDataDetails(NeXus::NXEntry &entry);
40 void initWorkSpace();
41 void setInstrumentName(const NeXus::NXEntry &firstEntry, const std::string &instrumentNamePath);
42 std::string getDataPath(const NeXus::NXEntry &entry);
43 void loadNexusEntriesIntoProperties(const std::string &nexusfilename);
44 void loadDataIntoTheWorkSpace(NeXus::NXEntry &entry);
45 void loadDiffractionData(NeXus::NXEntry &entry);
46 void runLoadInstrument();
47 void moveComponent(const std::string &, double);
48 void moveSingleDetectors(const NeXus::NXEntry &entry);
49 void rotateTubes();
50 std::string getInstrumentFilePath();
51
53
54 std::string m_instrumentName;
55
56 // Variables describing the data in the detector
57 size_t m_numberOfTubes; // number of tubes - X
58 size_t m_numberOfPixelsPerTube; // number of pixels per tube - Y
59 size_t m_numberOfChannels; // time channels - Z
60 size_t m_numberOfSimpleDetectors; // number of simple detector
61 size_t m_numberOfMonitors; // number of monitors
62 std::set<int> m_activeSDIndices; // set of Single Detector indices,
63 // that were actually active
64 bool m_bats; // A flag marking the BATS mode
65 size_t m_firstTubeAngleRounded; // A flag holding the rounded angle of the first tube
66
67 std::vector<std::string> m_supportedInstruments;
68 std::string m_loadOption;
69};
70
71} // namespace DataHandling
72} // namespace Mantid
Defines an interface to an algorithm that loads a file so that it can take part in the automatic sele...
Definition: IFileLoader.h:19
Loads an ILL IN16B nexus file into a Mantid workspace.
const std::vector< std::string > seeAlso() const override
Function to return all of the seeAlso (these are not validated) algorithms related to this algorithm....
std::string m_instrumentName
Name of the instrument.
std::vector< std::string > m_supportedInstruments
API::MatrixWorkspace_sptr m_localWorkspace
int version() const override
Algorithm's version for identification.
const std::string summary() const override
Summary of algorithms purpose.
Defines a wrapper around a file whose internal structure can be accessed using the NeXus API.
Implements NXentry Nexus class.
Definition: NexusClasses.h:898
std::shared_ptr< MatrixWorkspace > MatrixWorkspace_sptr
shared pointer to the matrix workspace base class
Helper class which provides the Collimation Length for SANS instruments.