Mantid
Loading...
Searching...
No Matches
AnyShapeAbsorption.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2010 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
9//----------------------------------------------------------------------
10// Includes
11//----------------------------------------------------------------------
14
15namespace Mantid {
16namespace Algorithms {
69class MANTID_ALGORITHMS_DLL AnyShapeAbsorption : public AbsorptionCorrection {
70public:
74 const std::string name() const override { return "AbsorptionCorrection"; }
75
76 const std::vector<std::string> seeAlso() const override {
77 return {"SetSampleMaterial", "CreateSampleShape", "DefineGaugeVolume", "CylinderAbsorption",
78 "FlatPlateAbsorption", "AnnularRingAbsorption", "CuboidGaugeVolumeAbsorption"};
79 }
80
82 const std::string summary() const override {
83 return "Calculates an approximation of the attenuation due to absorption "
84 "and single scattering in a generic sample shape. The sample shape "
85 "can be defined by, e.g., the CreateSampleShape algorithm.\nNote "
86 "that if your sample is of cuboid or cylinder geometry, you will "
87 "get a more accurate result from the FlatPlateAbsorption or "
88 "CylinderAbsorption algorithms respectively.";
89 }
90
92 int version() const override { return (1); }
93
94private:
95 void defineProperties() override;
96 void retrieveProperties() override;
97 std::string sampleXML() override;
98 void initialiseCachedDistances() override;
100 std::shared_ptr<const Geometry::IObject> constructGaugeVolume();
101
102 double m_cubeSide;
103};
104
105} // namespace Algorithms
106} // namespace Mantid
A base class for absorption correction algorithms.
Calculates an approximation of the attenuation due to absorption and scattering in a generic sample s...
const std::string summary() const override
Summary of algorithms purpose.
const std::vector< std::string > seeAlso() const override
Function to return all of the seeAlso algorithms related to this algorithm.
int version() const override
Algorithm's version.
double m_cubeSide
The length of the side of an element cube in m.
const std::string name() const override
Algorithm's name.
Helper class which provides the Collimation Length for SANS instruments.