Mantid
Loading...
Searching...
No Matches
MultipleScatteringCorrectionDistGraber.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2021 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#include "MantidAlgorithms/DllConfig.h"
12
13namespace Mantid {
14
15namespace Geometry {
16class IDetector;
17class IObject;
18} // namespace Geometry
19
20namespace Algorithms {
21
27class MANTID_ALGORITHMS_DLL MultipleScatteringCorrectionDistGraber {
28public:
29 MultipleScatteringCorrectionDistGraber(const Geometry::IObject &sampleShape, const double elementSize);
31 // Pre-calculate (cache) all the distances from source to each individual voxel
32 // inside the sample.
33 // This function is borrowed from AnyShapeAbsorption.initialiseCachedDistances()
34 void cacheLS1(const Mantid::Kernel::V3D &beamDirection);
35
36 // cached LS1 related data for multiple scattering correction
37 std::vector<double> m_LS1;
38 std::vector<double> m_elementVolumes;
39 std::vector<Kernel::V3D> m_elementPositions;
42
43private:
45 const double m_elementSize;
46};
47
48} // namespace Algorithms
49} // namespace Mantid
MultipleScatteringCorrectionDistGraber : This is a helper class to calculate the distance from source...
const Geometry::IObject * m_sampleShape
The shape pointer is handeled by sample object, not distGraber.
std::vector< Kernel::V3D > m_elementPositions
Cached element positions.
IObject : Interface for geometry objects.
Definition: IObject.h:41
Class for 3D vectors.
Definition: V3D.h:34
Helper class which provides the Collimation Length for SANS instruments.