16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_DEVICE_DETECTOR_SIMPLEUNITCONVERTERS_H
21 #define BORNAGAIN_DEVICE_DETECTOR_SIMPLEUNITCONVERTERS_H
41 virtual size_t dimension()
const override;
45 size_t axisSize(
size_t i_axis)
const override;
96 std::vector<std::map<Axes::Units, std::string>>
createNameMaps()
const override;
118 std::vector<std::map<Axes::Units, std::string>>
createNameMaps()
const override;
141 std::vector<std::map<Axes::Units, std::string>>
createNameMaps()
const override;
164 std::vector<std::map<Axes::Units, std::string>>
createNameMaps()
const override;
Defines interface IUnitConverter and possible axis units.
Defines basic vectors in Z^3, R^3, C^3.
An incident neutron or x-ray beam.
DepthProbeConverter class handles the unit translations for depth probe simulations Its default units...
std::vector< Axes::Units > availableUnits() const override
Returns the list of all available units.
DepthProbeConverter(const Beam &beam, const IAxis &alpha_axis, const IAxis &z_axis)
~DepthProbeConverter() override
double calculateValue(size_t, Axes::Units units_type, double value) const override
void checkUnits(Axes::Units units_type) const
Axes::Units defaultUnits() const override
std::vector< std::map< Axes::Units, std::string > > createNameMaps() const override
DepthProbeConverter * clone() const override
Interface for one-dimensional axes.
Abstract 2D detector interface.
Abstract detector interface.
Interface to provide axis translations to different units for simulation output.
IUnitConverter class that handles the unit translations for off-specular simulations with a spherical...
OffSpecularConverter(const IDetector2D &detector, const Beam &beam, const IAxis &alpha_axis)
std::vector< std::map< Axes::Units, std::string > > createNameMaps() const override
OffSpecularConverter * clone() const override
Axes::Units defaultUnits() const override
~OffSpecularConverter() override
double calculateValue(size_t i_axis, Axes::Units units_type, double value) const override
void addDetectorYAxis(const IDetector2D &detector)
IUnitConverter class that handles the unit translations for rectangular detectors Its default units a...
kvector_t normalizeToWavelength(kvector_t vector) const
double calculateValue(size_t i_axis, Axes::Units units_type, double value) const override
RectangularConverter(const RectangularDetector &detector, const Beam &beam)
~RectangularConverter() override
std::vector< Axes::Units > availableUnits() const override
Returns the list of all available units.
double axisAngle(size_t i_axis, kvector_t k_f) const
std::vector< std::map< Axes::Units, std::string > > createNameMaps() const override
Axes::Units defaultUnits() const override
RectangularConverter * clone() const override
std::unique_ptr< RectangularPixel > m_detector_pixel
A flat rectangular detector with axes and resolution function.
A pixel in a RectangularDetector.
IUnitConverter class that handles the unit translations for spherical detectors Its default units are...
std::vector< Axes::Units > availableUnits() const override
Returns the list of all available units.
~SphericalConverter() override
double calculateValue(size_t i_axis, Axes::Units units_type, double value) const override
SphericalConverter(const SphericalDetector &detector, const Beam &beam)
std::vector< std::map< Axes::Units, std::string > > createNameMaps() const override
SphericalConverter * clone() const override
Axes::Units defaultUnits() const override
A detector with coordinate axes along angles phi and alpha.
Interface for objects that provide axis translations to different units for IDetector objects.
void addDetectorAxis(const IDetector &detector, size_t i_axis)
double calculateMax(size_t i_axis, Axes::Units units_type) const override
void addAxisData(std::string name, double min, double max, Axes::Units default_units, size_t nbins)
std::vector< AxisData > m_axis_data_table
size_t axisSize(size_t i_axis) const override
double calculateMin(size_t i_axis, Axes::Units units_type) const override
std::unique_ptr< IAxis > createConvertedAxis(size_t i_axis, Axes::Units units) const override
~UnitConverterSimple() override=default
virtual double calculateValue(size_t i_axis, Axes::Units units_type, double value) const =0
virtual size_t dimension() const override
UnitConverterSimple(const Beam &beam)
std::vector< Axes::Units > availableUnits() const override
Returns the list of all available units.
QString const & name(EShape k)
Axes::Units default_units