jfjoch_broker: Add mosaicity estimation (experimental)

This commit is contained in:
2025-12-16 13:54:42 +01:00
parent 73da56eebc
commit 18eeb89564
9 changed files with 179 additions and 16 deletions

View File

@@ -73,6 +73,7 @@ void HDF5DataFilePluginMX::OpenFile(HDF5File &data_file, const DataMessage &msg)
strong_pixel_count.reserve(RESERVE_IMAGES);
indexed.reserve(RESERVE_IMAGES);
profile_radius.reserve(RESERVE_IMAGES);
mosaicity_deg.reserve(RESERVE_IMAGES);
b_factor.reserve(RESERVE_IMAGES);
indexed_lattice.reserve(9 * RESERVE_IMAGES);
resolution_estimate.reserve(RESERVE_IMAGES);
@@ -133,6 +134,7 @@ void HDF5DataFilePluginMX::Write(const DataMessage &msg, uint64_t image_number)
if (indexing) {
indexed[image_number] = msg.indexing_result.value_or(0);
profile_radius[image_number] = msg.profile_radius.value_or(NAN);
mosaicity_deg[image_number] = msg.mosaicity_deg.value_or(NAN);
b_factor[image_number] = msg.b_factor.value_or(NAN);
resolution_estimate[image_number] = msg.resolution_estimate.value_or(NAN);
beam_corr_x[image_number] = msg.beam_corr_x.value_or(NAN);
@@ -201,6 +203,8 @@ void HDF5DataFilePluginMX::WriteFinal(HDF5File &data_file) {
data_file.SaveVector("/entry/MX/bkgEstimate", bkg_estimate.vec());
if (!profile_radius.empty())
data_file.SaveVector("/entry/MX/profileRadius", profile_radius.vec())->Units("Angstrom^-1");
if (!mosaicity_deg.empty())
data_file.SaveVector("/entry/MX/mosaicity", profile_radius.vec())->Units("deg");
if (!b_factor.empty())
data_file.SaveVector("/entry/MX/bFactor", b_factor.vec())->Units("Angstrom^2");