Mantid
Loading...
Searching...
No Matches
LoadLLB.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2013 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 "MantidHistogramData/Histogram.h"
14
15namespace Mantid {
16namespace DataHandling {
17
21class MANTID_DATAHANDLING_DLL LoadLLB : public API::IFileLoader<Kernel::NexusDescriptor> {
22public:
23 LoadLLB();
24
25 const std::string name() const override;
27 const std::string summary() const override { return "Loads LLB nexus file."; }
28
29 int version() const override;
30 const std::string category() const override;
31
33 int confidence(Kernel::NexusDescriptor &descriptor) const override;
34
35private:
36 void init() override;
37 void exec() override;
38 void setInstrumentName(const NeXus::NXEntry &entry);
39 void initWorkSpace(NeXus::NXEntry &);
40 void loadTimeDetails(const NeXus::NXEntry &entry);
41 void loadDataIntoTheWorkSpace(NeXus::NXEntry &);
42 int getDetectorElasticPeakPosition(const NeXus::NXFloat &);
43 void setTimeBinning(HistogramData::HistogramX &histX, int, double);
45 static double calculateError(double in) { return sqrt(in); }
46 void loadExperimentDetails(NeXus::NXEntry &);
47 void loadRunDetails(const NeXus::NXEntry &);
48 void runLoadInstrument();
49
50 std::vector<std::string> m_supportedInstruments;
51 std::string m_instrumentName;
52 std::string m_instrumentPath;
53
55 size_t m_numberOfTubes; // number of tubes - X
56 size_t m_numberOfPixelsPerTube; // number of pixels per tube - Y
57 size_t m_numberOfChannels; // time channels - Z
61};
62
63} // namespace DataHandling
64} // 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
LoadLLB : Loads an LLB MIBEMOL TOF NeXus file into a Workspace2D with the given name.
Definition: LoadLLB.h:21
std::vector< std::string > m_supportedInstruments
Definition: LoadLLB.h:50
static double calculateError(double in)
Calculate error for y.
Definition: LoadLLB.h:45
const std::string summary() const override
Summary of algorithms purpose.
Definition: LoadLLB.h:27
std::string m_instrumentName
Definition: LoadLLB.h:51
std::string m_instrumentPath
Name of the instrument path.
Definition: LoadLLB.h:52
API::MatrixWorkspace_sptr m_localWorkspace
Definition: LoadLLB.h:54
Defines a wrapper around a file whose internal structure can be accessed using the NeXus API.
Templated class implementation of NXDataSet.
Definition: NexusClasses.h:203
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.