15 #ifndef BORNAGAIN_DEVICE_DETECTOR_SPHERICALDETECTOR_H
16 #define BORNAGAIN_DEVICE_DETECTOR_SPHERICALDETECTOR_H
37 double alpha_min,
double alpha_max);
50 std::string
className()
const override {
return "SphericalDetector"; }
63 std::string
axisName(
size_t index)
const override;
Defines common detector interface.
An incident neutron or x-ray beam.
Interface for objects that provide axis translations to different units for IDetector objects.
A direction in three-dimensional space.
Abstract base class for one-dimensional axes.
Interface to provide axis translations to different units for simulation output.
Abstract detector interface.
Interface for a function that maps [0,1]x[0,1] to the kvectors in a pixel. Abstract base class for Sp...
A detector with coordinate axes along angles phi and alpha.
~SphericalDetector() override=default
std::string axisName(size_t index) const override
Returns the name for the axis with given index.
size_t indexOfSpecular(const Beam &beam) const override
Returns index of pixel that contains the specular wavevector. If no pixel contains this specular wave...
IPixel * createPixel(size_t index) const override
Creates an IPixel for the given Datafield object and index.
SphericalDetector(const SphericalDetector &other)
Coords defaultCoords() const override
Returns default axes units.
std::string className() const override
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
SphericalDetector()=default
SphericalDetector * clone() const override
ICoordSystem * offspecCoords(IAxis *beamAxis, const Direction &beamDirection) const override
CoordSystem2D * scatteringCoords(const Beam &beam) const override