25 std::unique_ptr<OutputData<double>>
28 std::unique_ptr<OutputData<double>> result = std::make_unique<OutputData<double>>();
29 for (
size_t i = 0; i < converter.dimension(); ++i)
30 result->addAxis(*converter.createConvertedAxis(i, units));
31 result->setAllTo(0.0);
35 std::unique_ptr<IUnitConverter>
38 const IDetector*
const detector = instrument.getDetector();
41 return std::make_unique<SphericalConverter>(*det, instrument.getBeam());
43 return std::make_unique<RectangularConverter>(*det, instrument.getBeam());
45 throw std::runtime_error(
"Error in createConverterForGISAS: wrong or absent detector type");
48 std::unique_ptr<IUnitConverter> UnitConverterUtils::createConverter(
const Simulation& simulation)
57 return probe->createUnitConverter();
60 return off_spec->createUnitConverter();
63 throw std::runtime_error(
"UnitConverterUtils::createConverter -> "
64 "Not implemented simulation.");
Defines class DepthProbeSimulation.
Defines class GISASSimulation.
Defines class OffSpecSimulation.
Defines class RectangularDetector.
Defines interface UnitConverterSimple and its subclasses.
Defines class SpecularSimulation.
Defines class SphericalDetector.
Defines UnitConverter1D class and derived classes.
Declares utilities for unit converters.
Main class to run a Grazing-Incidence Small-Angle Scattering simulation.
Abstract detector interface.
Interface to provide axis translations to different units for simulation output.
Assembles beam, detector and their relative positions with respect to the sample.
Main class to run an off-specular simulation.
A flat rectangular detector with axes and resolution function.
Pure virtual base class of OffSpecularSimulation, GISASSimulation and SpecularSimulation.
Main class to run a specular simulation.
A spherical detector with axes and resolution function.
static std::unique_ptr< UnitConverter1D > createUnitConverter(const ISpecularScan &handler)
Factory function to create unit converter for particular type of specular data.
std::unique_ptr< OutputData< double > > createOutputData(const IUnitConverter &converter, Axes::Units units)
Returns zero-valued output data array in specified units.
std::unique_ptr< IUnitConverter > createConverterForGISAS(const Instrument &instrument)
Helper factory function to use in GISASSimulation.