accurate sigma estimation on merging with partiality-weighting
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m58s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 15m54s
Build Packages / build:rpm (rocky8) (push) Successful in 16m11s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 16m29s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m33s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 17m25s
Build Packages / Build documentation (push) Successful in 51s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 17m33s
Build Packages / Generate python client (push) Successful in 1m38s
Build Packages / build:rpm (rocky9) (push) Successful in 9m50s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 13m30s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 15m6s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 14m48s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 14m2s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 15m5s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 10m5s
Build Packages / build:rpm (rocky8) (pull_request) Successful in 10m42s
Build Packages / Generate python client (pull_request) Successful in 33s
Build Packages / Build documentation (pull_request) Successful in 25s
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 12m40s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 13m2s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 13m12s
Build Packages / build:rpm (rocky9) (pull_request) Successful in 14m27s
Build Packages / build:rpm (rocky9_sls9) (pull_request) Successful in 15m41s
Build Packages / Unit tests (push) Successful in 1h17m42s
Build Packages / Unit tests (pull_request) Successful in 1h6m35s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m58s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 15m54s
Build Packages / build:rpm (rocky8) (push) Successful in 16m11s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 16m29s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m33s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 17m25s
Build Packages / Build documentation (push) Successful in 51s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 17m33s
Build Packages / Generate python client (push) Successful in 1m38s
Build Packages / build:rpm (rocky9) (push) Successful in 9m50s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 13m30s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 15m6s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 14m48s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 14m2s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 15m5s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 10m5s
Build Packages / build:rpm (rocky8) (pull_request) Successful in 10m42s
Build Packages / Generate python client (pull_request) Successful in 33s
Build Packages / Build documentation (pull_request) Successful in 25s
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 12m40s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 13m2s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 13m12s
Build Packages / build:rpm (rocky9) (pull_request) Successful in 14m27s
Build Packages / build:rpm (rocky9_sls9) (pull_request) Successful in 15m41s
Build Packages / Unit tests (push) Successful in 1h17m42s
Build Packages / Unit tests (pull_request) Successful in 1h6m35s
This commit is contained in:
@@ -241,6 +241,7 @@ namespace {
|
||||
int hkl_slot;
|
||||
double I_corr;
|
||||
double sigma_corr;
|
||||
double weight;
|
||||
};
|
||||
|
||||
void scale(const ScaleMergeOptions &opt,
|
||||
@@ -408,18 +409,16 @@ namespace {
|
||||
struct HKLAccum {
|
||||
double sum_wI = 0.0;
|
||||
double sum_w = 0.0;
|
||||
double sum_wI2 = 0.0;
|
||||
int count = 0;
|
||||
double sum_wsigma2 = 0.0;
|
||||
};
|
||||
std::vector<HKLAccum> accum(nhkl);
|
||||
|
||||
for (const auto &co: corr_obs) {
|
||||
const double w = 1.0 / (co.sigma_corr * co.sigma_corr);
|
||||
const double w = co.weight / (co.sigma_corr * co.sigma_corr);
|
||||
auto &a = accum[co.hkl_slot];
|
||||
a.sum_wI += w * co.I_corr;
|
||||
a.sum_w += w;
|
||||
a.sum_wI2 += w * co.I_corr * co.I_corr;
|
||||
a.count++;
|
||||
a.sum_wsigma2 += w * w * co.sigma_corr * co.sigma_corr;
|
||||
}
|
||||
|
||||
for (int h = 0; h < nhkl; ++h) {
|
||||
@@ -428,15 +427,7 @@ namespace {
|
||||
continue;
|
||||
|
||||
out.merged[h].I = a.sum_wI / a.sum_w;
|
||||
const double sigma_stat = std::sqrt(1.0 / a.sum_w);
|
||||
|
||||
if (a.count >= 2) {
|
||||
const double var_internal = a.sum_wI2 - (a.sum_wI * a.sum_wI) / a.sum_w;
|
||||
const double sigma_int = std::sqrt(var_internal / (a.sum_w * (a.count - 1)));
|
||||
out.merged[h].sigma = std::max(sigma_stat, sigma_int);
|
||||
} else {
|
||||
out.merged[h].sigma = sigma_stat;
|
||||
}
|
||||
out.merged[h].sigma = std::sqrt(a.sum_wsigma2) / a.sum_w;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -643,7 +634,8 @@ namespace {
|
||||
corr_obs.push_back({
|
||||
o.hkl_slot,
|
||||
static_cast<double>(r.I) / correction,
|
||||
o.sigma / correction
|
||||
o.sigma / correction,
|
||||
1 / correction
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user