22#include "../qmc_data.hpp"
23#include <triqs/stat/histograms.hpp>
25namespace triqs_cthyb {
27 struct measure_perturbation_hist {
31 stat::histogram &histo_perturbation_order;
33 measure_perturbation_hist(
int block_index, qmc_data
const &data, stat::histogram &hist)
34 : data(data), block_index(block_index), histo_perturbation_order(hist) {
35 histo_perturbation_order = {0, 1000};
38 void accumulate(mc_weight_t) { histo_perturbation_order << data.dets[block_index].size(); }
40 void collect_results(mpi::communicator
const &c) { histo_perturbation_order = mpi::all_reduce(histo_perturbation_order, c); }
44 struct measure_perturbation_hist_total {
47 stat::histogram &histo_perturbation_order;
49 measure_perturbation_hist_total(qmc_data
const &data, stat::histogram &hist) : data(data), histo_perturbation_order(hist) {
50 histo_perturbation_order = {0, 1000};
53 void accumulate(mc_weight_t) { histo_perturbation_order << data.config.size() / 2; }
55 void collect_results(mpi::communicator
const &c) { histo_perturbation_order = mpi::all_reduce(histo_perturbation_order, c); }