15 #ifndef BORNAGAIN_SIM_SCAN_QZSCAN_H
16 #define BORNAGAIN_SIM_SCAN_QZSCAN_H
31 QzScan(std::vector<double> qs_nm);
37 QzScan(
int nbins,
double qz_min,
double qz_max);
58 std::vector<double>
footprint(
size_t i,
size_t n_elements)
const override;
66 std::vector<double>
createIntensities(
const std::vector<SpecularElement>& eles)
const override;
79 const std::vector<double>& rel_dev);
86 const std::vector<double>& std_dev);
97 const std::unique_ptr<IAxis>
m_qs;
Declares interface ISpecularScan.
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.
Scan type with z-components of scattering vector as coordinate values. Wavelength and incident angles...
const IFootprintFactor * footprintFactor() const override
Returns IFootprintFactor object pointer.
double wavelength() const override
void setRelativeQResolution(const IRangedDistribution &distr, double rel_dev)
std::vector< double > createIntensities(const std::vector< SpecularElement > &eles) const override
Returns intensity vector corresponding to convolution of given simulation elements.
QzScan(std::vector< double > qs_nm)
Accepts qz-value vector (in inverse nm)
void setQResolution(const ScanResolution &resolution)
Sets q resolution values via ScanResolution object.
const IAxis * coordinateAxis() const override
Returns coordinate axis assigned to the data holder.
void setAbsoluteQResolution(const IRangedDistribution &distr, double std_dev)
CoordSystem1D * createCoordSystem() const override
std::vector< SpecularElement > generateElements() const override
Generates simulation elements for specular simulations.
const std::unique_ptr< IAxis > m_qs
size_t numberOfElements() const override
Returns the number of simulation elements.
std::unique_ptr< ScanResolution > m_resolution
QzScan * clone() const override
const ScanResolution * resolution() const
std::vector< std::vector< ParameterSample > > applyQResolution() const
std::vector< double > generateQzVector() const
void setOffset(double offset)
std::vector< double > footprint(size_t i, size_t n_elements) const override
Returns footprint correction factor for a range of simulation elements of size n_elements and startin...
Container for reflectivity resolution data.