28 const std::string
name()
const override {
return "MultipleScatteringCorrection"; };
31 int version()
const override {
return 1; };
34 const std::string
category()
const override {
return "CorrectionFunctions"; };
37 const std::string
summary()
const override {
38 return "Calculate Multiple Scattering Correction using numerical integration with the assumption of"
39 "elastic and isotropic scattering only.";
43 const std::vector<std::string>
seeAlso()
const override {
44 return {
"CalculateCarpenterSampleCorrection",
"CarpenterSampleCorrection",
"MayersSampleCorrection"};
57 std::map<std::string, std::string> validateInputs()
override;
61 const double elementSize);
65 std::vector<double> &LS1s,
68 std::vector<double> &L12s,
72 std::vector<double> &L2Ds,
74 void pairWiseSum(
double &A1,
double &A2,
75 const double linearCoefAbs,
77 const std::vector<double> &LS1s,
78 const std::vector<double> &L12s,
79 const std::vector<double> &L2Ds,
80 const int64_t startIndex,
const int64_t endIndex)
const;
84 std::vector<double> &LS1sContainer,
85 std::vector<double> &LS1sSample,
90 std::vector<double> &L12sContainer,
91 std::vector<double> &L12sSample,
97 std::vector<double> &container_L2Ds, std::vector<double> &sample_L2Ds,
100 void pairWiseSum(
double &A1,
double &A2,
101 const double linearCoefAbsContainer,
const double linearCoefAbsSample,
102 const int64_t numVolumeElementsContainer,
const int64_t numVolumeElementsTotal,
103 const double totScatterCoefContainer,
const double totScatterCoefSample,
104 const std::vector<double> &elementVolumes,
const std::vector<double> &LS1sContainer,
105 const std::vector<double> &LS1sSample,
const std::vector<double> &L12sContainer,
106 const std::vector<double> &L12sSample,
const std::vector<double> &L2DsContainer,
107 const std::vector<double> &L2DsSample,
const int64_t startIndex,
const int64_t endIndex)
const;