Mantid
Loading...
Searching...
No Matches
CalculateCoverageDGS.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
11#include "MantidKernel/Matrix.h"
12#include "MantidMDAlgorithms/DllConfig.h"
13namespace Mantid {
14namespace MDAlgorithms {
15
19class MANTID_MDALGORITHMS_DLL CalculateCoverageDGS final : public API::Algorithm {
20public:
22 const std::string name() const override;
23 int version() const override;
24 const std::vector<std::string> seeAlso() const override { return {"SetGoniometer", "SetUB"}; }
25 const std::string category() const override;
26 const std::string summary() const override;
27
28private:
29 void init() override;
30 void exec() override;
31
32 // ki-kf for Inelastic convention; kf-ki for Crystallography convention
33 std::string convention;
35 coord_t m_hmin, m_hmax, m_kmin, m_kmax, m_lmin, m_lmax, m_dEmin, m_dEmax;
37 double m_Ei, m_ki, m_kfmin, m_kfmax;
39 bool m_hIntegrated, m_kIntegrated, m_lIntegrated, m_dEIntegrated;
41 std::vector<double> m_hX, m_kX, m_lX, m_eX;
43 size_t m_hIdx, m_kIdx, m_lIdx, m_eIdx;
46
49
50 std::vector<Kernel::VMD> calculateIntersections(const double theta, const double phi);
51 void cacheDimensionXValues();
52};
53
54} // namespace MDAlgorithms
55} // namespace Mantid
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:85
CalculateCoverageDGS : Calculate coverage for single crystal direct geometry scattering.
Mantid::DataObjects::MDHistoWorkspace_sptr m_normWS
Normalization workspace (this is the coverage workspace)
double m_Ei
cached values for incident energy and momentum, final momentum min/max
Mantid::Kernel::DblMatrix m_rubw
(2*PiRUBW)^-1
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::shared_ptr< MDHistoWorkspace > MDHistoWorkspace_sptr
A shared pointer to a MDHistoWorkspace.
Helper class which provides the Collimation Length for SANS instruments.
float coord_t
Typedef for the data type to use for coordinate axes in MD objects such as MDBox, MDEventWorkspace,...
Definition: MDTypes.h:27