Mantid
Loading...
Searching...
No Matches
IBeamProfile.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2016 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"
11#include "MantidKernel/V3D.h"
12
13namespace Mantid {
14namespace API {
15class Sample;
16}
17namespace Kernel {
18class PseudoRandomNumberGenerator;
19}
20namespace Algorithms {
21
26class MANTID_ALGORITHMS_DLL IBeamProfile {
27public:
28 struct Ray {
31 };
32
33 virtual ~IBeamProfile() = default;
37};
38
39} // namespace Algorithms
40} // namespace Mantid
Base class for all classes defining a beam profile.
Definition: IBeamProfile.h:26
virtual Ray generatePoint(Kernel::PseudoRandomNumberGenerator &rng) const =0
virtual Geometry::BoundingBox defineActiveRegion(const Geometry::BoundingBox &) const =0
virtual Ray generatePoint(Kernel::PseudoRandomNumberGenerator &rng, const Geometry::BoundingBox &) const =0
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
Helper class which provides the Collimation Length for SANS instruments.