13#include "MantidAlgorithms/DllConfig.h"
29class DetectorGridDefinition;
30class MCInteractionVolume;
40 const std::string
name()
const override {
return "MonteCarloAbsorption"; }
42 int version()
const override {
return 1; }
43 const std::vector<std::string>
seeAlso()
const override {
44 return {
"MayersSampleCorrection",
"CarpenterSampleCorrection",
"PearlMCAbsorption",
"VesuvioCalculateMS"};
47 const std::string
category()
const override {
return "CorrectionFunctions\\AbsorptionCorrections"; }
49 const std::string
summary()
const override {
50 return "Calculates attenuation due to absorption and scattering in a "
51 "sample & its environment using a Monte Carlo.";
55 virtual std::shared_ptr<IMCAbsorptionStrategy>
57 const size_t nevents,
const size_t maxScatterPtAttempts,
const bool regenerateTracksForEachLambda);
58 virtual std::shared_ptr<IMCInteractionVolume>
59 createInteractionVolume(
const API::Sample &sample,
const size_t maxScatterPtAttempts,
61 virtual std::shared_ptr<SparseWorkspace> createSparseWorkspace(
const API::MatrixWorkspace &modelWS,
62 const size_t wavelengthPoints,
const size_t rows,
63 const size_t columns);
64 virtual std::unique_ptr<InterpolationOption> createInterpolateOption();
71 std::map<std::string, std::string> validateInputs()
override;
74 const bool simulateTracksForEachWavelength,
const int seed,
76 const size_t maxScatterPtAttempts,
Base class from which all concrete algorithm classes should be derived.
Base MatrixWorkspace Abstract Class.
This class stores information about the sample used in particular run.
Base class for all classes defining a beam profile.
Defines a base class for objects describing a volume where interactions of Tracks and Objects can tak...
Class to provide a consistent interface to an interpolation option on algorithms.
Calculates attenuation due to absorption and scattering in a sample + its environment using a Monte C...
const std::string category() const override
Algorithm's category for identification.
const std::string name() const override
Algorithm's name.
const std::vector< std::string > seeAlso() const override
Function to return all of the seeAlso algorithms related to this algorithm.
std::unique_ptr< IBeamProfile > createBeamProfile(const Geometry::Instrument &instrument, const API::Sample &sample) const
const std::string summary() const override
Summary of algorithms purpose.
virtual ~MonteCarloAbsorption()=default
int version() const override
Algorithm's version.
Defines functions and utilities to create and deal with sparse instruments.
std::unique_ptr< MatrixWorkspace > MatrixWorkspace_uptr
unique pointer to Mantid::API::MatrixWorkspace
Helper class which provides the Collimation Length for SANS instruments.
Type
Define the available energy transfer modes It is important to assign enums proper numbers,...