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<Nexus::NexusDescriptor> {
21public:
24 int confidence(Nexus::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(const Nexus::NXEntry &entry);
40 void initWorkSpace();
41 void setInstrumentName(const Nexus::NXEntry &firstEntry, const std::string &instrumentNameAddress);
42 std::string getDataAddress(const Nexus::NXEntry &entry);
43 void loadNexusEntriesIntoProperties(const std::string &nexusfilename);
44 void loadDataIntoWorkspace(const Nexus::NXEntry &entry);
45 void loadDiffractionData(Nexus::NXEntry &entry);
46 void moveComponent(const std::string &, double);
47 void moveSingleDetectors(const Nexus::NXEntry &entry);
48 void rotateTubes();
49 std::string getInstrumentFileName();
50
52
53 std::string m_instrumentName;
54
55 // Variables describing the data in the detector
56 size_t m_numberOfTubes; // number of tubes - X
57 size_t m_numberOfPixelsPerTube; // number of pixels per tube - Y
58 size_t m_numberOfChannels; // time channels - Z
59 size_t m_numberOfSimpleDetectors; // number of simple detector
60 size_t m_numberOfMonitors; // number of monitors
61 std::set<int32_t> m_activeSDIndices; // set of Single Detector indices,
62 // that were actually active
63 bool m_bats; // A flag marking the BATS mode
64 size_t m_firstTubeAngleRounded; // A flag holding the rounded angle of the first tube
65
66 std::vector<std::string> m_supportedInstruments;
67 std::string m_loadOption;
68};
69
70} // namespace DataHandling
71} // namespace Mantid
std::string name
Definition Run.cpp:60
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.
Implements NXentry Nexus class.
std::shared_ptr< MatrixWorkspace > MatrixWorkspace_sptr
shared pointer to the matrix workspace base class
Helper class which provides the Collimation Length for SANS instruments.