15 #ifndef BORNAGAIN_DEVICE_RESOLUTION_SCANRESOLUTION_H
16 #define BORNAGAIN_DEVICE_RESOLUTION_SCANRESOLUTION_H
30 using DistrOutput = std::vector<std::vector<ParameterSample>>;
36 const std::vector<double>& stddevs);
39 const std::vector<double>& stddevs);
49 virtual std::vector<double>
stdDevs(
double mean,
size_t n_times)
const = 0;
50 virtual std::vector<double>
stdDevs(
const std::vector<double>& mean)
const = 0;
53 virtual std::string
name()
const = 0;
54 virtual double delta()
const = 0;
62 std::unique_ptr<IRangedDistribution>
m_distr;
Defines and implements the standard mix-in ICloneable.
Defines class ParameterSample.
Interface for polymorphic classes that should not be copied, except by explicit cloning.
Interface for one-dimensional ranged distributions.
Limits for a real fit parameter.
Container for reflectivity resolution data.
static ScanResolution * scanAbsoluteResolution(const IRangedDistribution &distr, double stddev)
virtual double delta() const =0
std::vector< std::vector< ParameterSample > > DistrOutput
std::unique_ptr< IRangedDistribution > m_distr
basic distribution function
ScanResolution * clone() const override=0
~ScanResolution() override
static ScanResolution * scanEmptyResolution()
virtual std::string name() const =0
static ScanResolution * scanRelativeResolution(const IRangedDistribution &distr, double stddev)
const IRangedDistribution * distribution() const
virtual std::vector< double > stdDevs(double mean, size_t n_times) const =0
virtual DistrOutput generateSamples(const std::vector< double > &mean) const =0
virtual DistrOutput generateSamples(double mean, size_t n_times) const =0
virtual std::vector< double > stdDevs(const std::vector< double > &mean) const =0