15 #ifndef BORNAGAIN_CORE_DETECTOR_SCANRESOLUTION_H
16 #define BORNAGAIN_CORE_DETECTOR_SCANRESOLUTION_H
31 using DistrOutput = std::vector<std::vector<ParameterSample>>;
37 const std::vector<double>& stddevs);
40 const std::vector<double>& stddevs);
50 virtual std::vector<double>
stdDevs(
double mean,
size_t n_times)
const = 0;
51 virtual std::vector<double>
stdDevs(
const std::vector<double>& mean)
const = 0;
55 std::string
print()
const;
60 virtual std::string
name()
const = 0;
64 std::unique_ptr<RangedDistribution>
m_distr;
69 return os << scan_resolution.
print();
Defines and implements the standard mix-in ICloneable.
Defines class ParameterSample.
std::ostream & operator<<(std::ostream &os, const BasicVector3D< T > &a)
Output to stream.
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.
const RangedDistribution * distribution() const
std::vector< std::vector< ParameterSample > > DistrOutput
virtual std::string printStdDevs() const =0
static ScanResolution * scanRelativeResolution(const RangedDistribution &distr, double stddev)
ScanResolution * clone() const override=0
~ScanResolution() override
static ScanResolution * scanEmptyResolution()
static ScanResolution * scanAbsoluteResolution(const RangedDistribution &distr, double stddev)
virtual std::string name() const =0
std::unique_ptr< RangedDistribution > m_distr
basic distribution function
std::string print() const
Prints object definition in python format.
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