15 #ifndef BORNAGAIN_SIM_SCAN_ALPHASCAN_H
16 #define BORNAGAIN_SIM_SCAN_ALPHASCAN_H
29 AlphaScan(
double wl, std::vector<double> inc_angle);
36 AlphaScan(
double wl,
int nbins,
double alpha_i_min,
double alpha_i_max);
52 std::vector<double>
footprint(
size_t start,
size_t n_elements)
const override;
60 std::vector<double>
createIntensities(
const std::vector<SpecularElement>& eles)
const override;
81 const std::vector<double>& rel_dev);
88 const std::vector<double>& std_dev);
99 const std::vector<double>& rel_dev);
106 const std::vector<double>& std_dev);
Declares interface ISpecularScan.
Scan type with inclination angles as coordinate values and a unique wavelength. Features footprint co...
CoordSystem1D * createCoordSystem() const override
std::unique_ptr< IFootprintFactor > m_footprint
std::unique_ptr< ScanResolution > m_wl_resolution
void setAbsoluteAngularResolution(const IRangedDistribution &distr, double std_dev)
DistrOutput applyIncResolution() const
void setAngleResolution(const ScanResolution &resolution)
Sets angle resolution values via ScanResolution object.
AlphaScan * clone() const override
void checkInitialization()
const IAxis * coordinateAxis() const override
Returns coordinate axis assigned to the data holder.
std::vector< double > footprint(size_t start, size_t n_elements) const override
Returns footprint correction factor for a range of simulation elements of size n_elements and startin...
void setFootprintFactor(const IFootprintFactor *f_factor)
Sets footprint correction factor.
const IFootprintFactor * footprintFactor() const override
Returns IFootprintFactor object pointer.
std::unique_ptr< ScanResolution > m_inc_resolution
const ScanResolution * angleResolution() const
void setWavelengthResolution(const ScanResolution &resolution)
Sets wavelength resolution values via ScanResolution object.
double wavelength() const override
void setRelativeAngularResolution(const IRangedDistribution &distr, double rel_dev)
std::vector< std::vector< ParameterSample > > DistrOutput
std::vector< double > createIntensities(const std::vector< SpecularElement > &eles) const override
Returns intensity vector corresponding to convolution of given simulation elements.
DistrOutput applyWlResolution() const
AlphaScan(double wl, std::vector< double > inc_angle)
void setRelativeWavelengthResolution(const IRangedDistribution &distr, double rel_dev)
void setAbsoluteWavelengthResolution(const IRangedDistribution &distr, double std_dev)
std::vector< SpecularElement > generateElements() const override
Generates simulation elements for specular simulations.
const std::unique_ptr< IAxis > m_inc_angle
size_t numberOfElements() const override
Returns the number of simulation elements.
const ScanResolution * wavelengthResolution() const
Abstract base class to support coordinate transforms and axis labels for 1D scans....
Abstract base class for one-dimensional axes.
Interface for one-dimensional ranged distributions. All derived distributions allow for generating sa...
Abstract base class for all types of specular scans.
A parameter value with a weight, as obtained when sampling from a distribution.
Container for reflectivity resolution data.