Mantid
Loading...
Searching...
No Matches
IMCAbsorptionStrategy.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2020 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 "MantidAlgorithms/DllConfig.h"
13#include "MantidHistogramData/Histogram.h"
15#include <tuple>
16
17namespace Mantid {
18namespace API {
19class Sample;
20} // namespace API
21namespace Kernel {
22class PseudoRandomNumberGenerator;
23class V3D;
24class Logger;
25} // namespace Kernel
26namespace Algorithms {
27class IBeamProfile;
28class MonteCarloAbsorption;
29
35class MANTID_ALGORITHMS_DLL IMCAbsorptionStrategy {
36public:
37 virtual ~IMCAbsorptionStrategy() = default;
38 virtual void calculate(Kernel::PseudoRandomNumberGenerator &rng, const Kernel::V3D &finalPos,
39 const std::vector<double> &lambdas, const double lambdaFixed,
40 std::vector<double> &attenuationFactors, std::vector<double> &attFactorErrors,
41 MCInteractionStatistics &stats) = 0;
42};
43
44} // namespace Algorithms
45} // namespace Mantid
Defines a base class for objects that calculate correction factors for self-attenuation.
virtual void calculate(Kernel::PseudoRandomNumberGenerator &rng, const Kernel::V3D &finalPos, const std::vector< double > &lambdas, const double lambdaFixed, std::vector< double > &attenuationFactors, std::vector< double > &attFactorErrors, MCInteractionStatistics &stats)=0
Stores statistics relating to the tracks generated in MCInteractionVolume for a specific detector.
Defines a 1D pseudo-random number generator, i.e.
Class for 3D vectors.
Definition: V3D.h:34
Helper class which provides the Collimation Length for SANS instruments.