Mantid
Loading...
Searching...
No Matches
IMCInteractionVolume.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
9#include "MantidAlgorithms/DllConfig.h"
12
13namespace Mantid {
14namespace Geometry {
15class IObject;
16class Track;
17} // namespace Geometry
18
19namespace Kernel {
20class PseudoRandomNumberGenerator;
21class V3D;
22} // namespace Kernel
23namespace Algorithms {
24
28};
29
30using TrackPair = std::tuple<bool, std::shared_ptr<Geometry::Track>, std::shared_ptr<Geometry::Track>>;
31
36class MANTID_ALGORITHMS_DLL IMCInteractionVolume {
37public:
38 virtual ~IMCInteractionVolume() = default;
40 const Kernel::V3D &endPos, MCInteractionStatistics &stats) const = 0;
41 virtual const Geometry::BoundingBox getFullBoundingBox() const = 0;
42 virtual void setActiveRegion(const Geometry::BoundingBox &region) = 0;
43};
44
45} // namespace Algorithms
46} // namespace Mantid
Defines a base class for objects describing a volume where interactions of Tracks and Objects can tak...
virtual void setActiveRegion(const Geometry::BoundingBox &region)=0
virtual TrackPair calculateBeforeAfterTrack(Kernel::PseudoRandomNumberGenerator &rng, const Kernel::V3D &startPos, const Kernel::V3D &endPos, MCInteractionStatistics &stats) const =0
virtual const Geometry::BoundingBox getFullBoundingBox() const =0
Stores statistics relating to the tracks generated in MCInteractionVolume for a specific detector.
A simple structure that defines an axis-aligned cuboid shaped bounding box for a geometrical object.
Definition: BoundingBox.h:34
Defines a 1D pseudo-random number generator, i.e.
Class for 3D vectors.
Definition: V3D.h:34
std::tuple< bool, std::shared_ptr< Geometry::Track >, std::shared_ptr< Geometry::Track > > TrackPair
Helper class which provides the Collimation Length for SANS instruments.