Mantid
Loading...
Searching...
No Matches
IntegrateFlux.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 "MantidMDAlgorithms/DllConfig.h"
11
12namespace Mantid {
13
14namespace API {
15class MatrixWorkspace;
16}
17
18namespace DataObjects {
19class EventWorkspace;
20}
21
22namespace MDAlgorithms {
23
29class MANTID_MDALGORITHMS_DLL IntegrateFlux final : public API::Algorithm {
30public:
31 const std::string name() const override;
32 int version() const override;
33 const std::vector<std::string> seeAlso() const override { return {"Integration"}; }
34 const std::string category() const override;
35 const std::string summary() const override;
36
37private:
38 void init() override;
39 void exec() override;
40
41 std::shared_ptr<API::MatrixWorkspace> createOutputWorkspace(const API::MatrixWorkspace &inputWS, size_t nX) const;
42 void integrateSpectra(const API::MatrixWorkspace &inputWS, API::MatrixWorkspace &integrWS) const;
43 template <class EventType>
44 void integrateSpectraEvents(const DataObjects::EventWorkspace &inputWS, API::MatrixWorkspace &integrWS) const;
45 void integrateSpectraMatrix(const API::MatrixWorkspace &inputWS, API::MatrixWorkspace &integrWS) const;
46 void integrateSpectraHistograms(const API::MatrixWorkspace &inputWS, API::MatrixWorkspace &integrWS) const;
47 void integrateSpectraPointData(const API::MatrixWorkspace &inputWS, API::MatrixWorkspace &integrWS) const;
48
49 size_t getMaxNumberOfPoints(const API::MatrixWorkspace &inputWS) const;
50};
51
52} // namespace MDAlgorithms
53} // namespace Mantid
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:85
Base MatrixWorkspace Abstract Class.
This class is intended to fulfill the design specified in <https://github.com/mantidproject/documents...
Algorithm IntegrateFlux.
Definition: IntegrateFlux.h:29
const std::vector< std::string > seeAlso() const override
Function to return all of the seeAlso (these are not validated) algorithms related to this algorithm....
Definition: IntegrateFlux.h:33
Helper class which provides the Collimation Length for SANS instruments.