10#include "MantidAlgorithms/DllConfig.h"
18using namespace Geometry;
25 const std::string
name()
const override {
return "MultipleScatteringCorrection"; };
28 int version()
const override {
return 1; };
31 const std::string
category()
const override {
return "CorrectionFunctions"; };
34 const std::string
summary()
const override {
35 return "Calculate Multiple Scattering Correction using numerical integration with the assumption of"
36 "elastic and isotropic scattering only.";
40 const std::vector<std::string>
seeAlso()
const override {
41 return {
"CalculateCarpenterSampleCorrection",
"CarpenterSampleCorrection",
"MayersSampleCorrection"};
54 std::map<std::string, std::string> validateInputs()
override;
58 const double elementSize);
62 std::vector<double> &LS1s,
65 std::vector<double> &L12s,
69 std::vector<double> &L2Ds,
71 void pairWiseSum(
double &A1,
double &A2,
72 const double linearCoefAbs,
74 const std::vector<double> &LS1s,
75 const std::vector<double> &L12s,
76 const std::vector<double> &L2Ds,
77 const int64_t startIndex,
const int64_t endIndex)
const;
81 std::vector<double> &LS1sContainer,
82 std::vector<double> &LS1sSample,
87 std::vector<double> &L12sContainer,
88 std::vector<double> &L12sSample,
94 std::vector<double> &container_L2Ds, std::vector<double> &sample_L2Ds,
97 void pairWiseSum(
double &A1,
double &A2,
98 const double linearCoefAbsContainer,
const double linearCoefAbsSample,
99 const int64_t numVolumeElementsContainer,
const int64_t numVolumeElementsTotal,
100 const double totScatterCoefContainer,
const double totScatterCoefSample,
101 const std::vector<double> &elementVolumes,
const std::vector<double> &LS1sContainer,
102 const std::vector<double> &LS1sSample,
const std::vector<double> &L12sContainer,
103 const std::vector<double> &L12sSample,
const std::vector<double> &L2DsContainer,
104 const std::vector<double> &L2DsSample,
const int64_t startIndex,
const int64_t endIndex)
const;
Base class from which all concrete algorithm classes should be derived.
MultipleScatteringCorrectionDistGraber : This is a helper class to calculate the distance from source...
MultipleScatteringCorrection : TODO: DESCRIPTION.
const std::string summary() const override
Algorithm's summary.
double m_sampleElementSize
The size of the integration element for sample in meters.
API::MatrixWorkspace_sptr m_inputWS
A pointer to the input workspace.
const std::string name() const override
Algorithm's name.
int version() const override
Algorithm's version.
Kernel::V3D m_beamDirection
The direction of the beam.
int64_t m_num_lambda
The number of points in wavelength, the rest is interpolated linearly.
const std::string category() const override
Algorithm's category.
int64_t m_xStep
The step in bin number between adjacent points for linear interpolation.
const std::vector< std::string > seeAlso() const override
Algorithm's see also.
double m_containerElementSize
the size of the integration element for container in meters
Interface class for detector objects.
IObject : Interface for geometry objects.
std::shared_ptr< MatrixWorkspace > MatrixWorkspace_sptr
shared pointer to the matrix workspace base class
Helper class which provides the Collimation Length for SANS instruments.