Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
RvgNuisanceSampler.cpp
Go to the documentation of this file.
2
3RvgNuisanceSampler::RvgNuisanceSampler(const std::vector<ParamId> &ids, std::unique_ptr<JointDistribution> rvg)
4 : ids_(ids), rvg_(std::move(rvg))
5{}
6
7std::map<ParamId, double> RvgNuisanceSampler::sample() const {
8 std::vector<double> s = rvg_->sample();
9 return zip(ids_, s);
10}
11
12std::vector<std::map<ParamId, double>> RvgNuisanceSampler::sample(std::size_t n) const {
13 std::vector<std::vector<double>> samples = rvg_->sample(n);
14 std::vector<std::map<ParamId, double>> out;
15 for (const auto& s : samples) {
16 out.emplace_back(zip(ids_, s));
17 }
18 return out;
19}
std::map< T, U > zip(const std::vector< T > &ids, const std::vector< U > &vals)
Builds a map from parallel id and value vectors.
Definition Indexing.h:61
Nuisance sampler backed by a joint random-vector generator.
std::map< ParamId, double > sample() const override
Draws one nuisance-parameter sample.
RvgNuisanceSampler(const std::vector< ParamId > &ids, std::unique_ptr< JointDistribution > rvg)
Constructs a sampler from parameter identifiers and a joint law.
Hash specialization for SymbolId<Tag>.
Definition BlockName.h:353