DiffractionExperiment: Solid angle correction is saved with the master file

This commit is contained in:
leonarski_f committed 2023-05-17 22:53:41 +02:00
1 parent 11e478a5d0
commit ea719742ce
12 files changed
+99 -74

No files matched your search

@@ -511,6 +511,8 @@ void JFJochFrameDeserializer::ProcessStartMessageUserDataElement(CborValue &valu
start_message.rad_int_bin_number = GetCBORInt(map_value);
else if (key == "rad_int_bin_to_q")
GetCBORFloatArray(map_value, start_message.rad_int_bin_to_q);
else if (key == "rad_int_solid_angle_corr")
GetCBORFloatArray(map_value, start_message.rad_int_solid_angle_corr);
else if (key == "summation")
start_message.summation = GetCBORUInt(map_value);
else if (key == "storage_cell_number")
+2 -1
View File
@@ -270,7 +270,7 @@ inline void CBOR_ENC_USER_DATA(CborEncoder &encoder, const StartMessage& message
CborEncoder mapEncoder;
cborErr(cbor_encode_text_stringz(&encoder, "user_data"));
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 19));
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 20));
CBOR_ENC(mapEncoder, "file_prefix", message.file_prefix);
CBOR_ENC(mapEncoder, "sample_name", message.sample_name);
@@ -303,6 +303,7 @@ inline void CBOR_ENC_USER_DATA(CborEncoder &encoder, const StartMessage& message
CBOR_ENC(mapEncoder, "instrument_name_short", message.instrument_name_short);
CBOR_ENC(mapEncoder, "rad_int_bin_number", message.rad_int_bin_number);
CBOR_ENC(mapEncoder, "rad_int_bin_to_q", message.rad_int_bin_to_q);
CBOR_ENC(mapEncoder, "rad_int_solid_angle_corr", message.rad_int_solid_angle_corr);
CBOR_ENC(mapEncoder, "summation", message.summation);
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
}
+1
View File
@@ -79,6 +79,7 @@ struct StartMessage {
uint64_t summation;
std::vector<float> rad_int_bin_to_q;
std::vector<float> rad_int_solid_angle_corr;
};
#endif //JUNGFRAUJOCH_STARTMESSAGE_H
+1
View File
@@ -278,6 +278,7 @@ message PlotRequest {
message RadialIntegrationProfiles {
map <string, Plot> plots = 1;
repeated float solid_angle_correction = 2;
}
// Writer
@@ -54,6 +54,10 @@ RadialIntegrationMapping::RadialIntegrationMapping(const DiffractionExperiment&
bin_to_q.resize(max_bin_number + 1);
for (int i = 0; i < max_bin_number + 1; i++)
bin_to_q[i] = static_cast<float>(q_spacing * (i + 0.5) + low_q);
solid_angle_corr.resize(max_bin_number + 1);
for (int i = 0; i < max_bin_number + 1; i++)
solid_angle_corr[i] = 1.0f / experiment.CalcRadIntSolidAngleCorr(bin_to_q[i]);
}
uint16_t RadialIntegrationMapping::GetBinNumber() const {
@@ -68,6 +72,10 @@ const std::vector<float> &RadialIntegrationMapping::GetBinToQ() const {
return bin_to_q;
}
const std::vector<float> &RadialIntegrationMapping::GetSolidAngleCorr() const {
return solid_angle_corr;
}
double RadialIntegrationMapping::QToBin(double q) const {
return std::min(static_cast<double>(max_bin_number), std::max(0.0, (q - low_q) / q_spacing));
}
@@ -10,6 +10,7 @@
class RadialIntegrationMapping {
const double low_q, high_q, q_spacing;
std::vector<float> bin_to_q;
std::vector<float> solid_angle_corr;
std::vector<uint16_t> pixel_to_bin;
uint16_t max_bin_number;
public:
@@ -17,6 +18,7 @@ public:
[[nodiscard]] uint16_t GetBinNumber() const;
[[nodiscard]] const std::vector<uint16_t> &GetPixelToBinMapping() const;
[[nodiscard]] const std::vector<float> &GetBinToQ() const;
[[nodiscard]] const std::vector<float> &GetSolidAngleCorr() const;
[[nodiscard]] double QToBin(double q) const;
};
+2 -4
View File
@@ -9,12 +9,10 @@ RadialIntegrationProfile::RadialIntegrationProfile(RadialIntegrationMapping &map
: bin_to_q(mapping.GetBinToQ()),
sum(mapping.GetBinNumber(), 0),
count(mapping.GetBinNumber(), 0),
corrections(mapping.GetBinNumber(), 1.0f){
for (int i = 0; i < corrections.size(); i++)
corrections[i] = 1.0f / experiment.CalcRadIntSolidAngleCorr(bin_to_q[i]);
corrections(mapping.GetSolidAngleCorr()) {
}
const std::vector<float> &RadialIntegrationProfile::GetSolidAngleCorrection() const {
const std::vector<float> &RadialIntegrationProfile::GetSolidAngleCorr() const {
return corrections;
}
+1 -1
View File
@@ -21,7 +21,7 @@ public:
void Add(const std::vector<int32_t> &sum, const std::vector<int32_t> &count);
std::vector<float> GetResult(bool solid_angle_correction) const;
void GetPlot(JFJochProtoBuf::Plot &plot, bool solid_angle_correction) const;
const std::vector<float> &GetSolidAngleCorrection() const;
const std::vector<float> &GetSolidAngleCorr() const;
};
#endif //JUNGFRAUJOCH_RADIALINTEGRATIONPROFILE_H
+66 -66
View File
@@ -13,7 +13,7 @@ _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cjfjoch.proto\x12\x0eJFJochProtoBuf\"\x07\n\x05\x45mpty\"W\n\x08UnitCell\x12\t\n\x01\x61\x18\x01 \x01(\x02\x12\t\n\x01\x62\x18\x02 \x01(\x02\x12\t\n\x01\x63\x18\x03 \x01(\x02\x12\r\n\x05\x61lpha\x18\x04 \x01(\x02\x12\x0c\n\x04\x62\x65ta\x18\x05 \x01(\x02\x12\r\n\x05gamma\x18\x06 \x01(\x02\")\n\x06Vector\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02\"|\n\x10RotationSettings\x12\x17\n\x0fstart_angle_deg\x18\x01 \x01(\x02\x12 \n\x18\x61ngle_incr_per_image_deg\x18\x02 \x01(\x02\x12-\n\rrotation_axis\x18\x03 \x01(\x0b\x32\x16.JFJochProtoBuf.Vector\"\x1c\n\x04Plot\x12\t\n\x01x\x18\x01 \x03(\x02\x12\t\n\x01y\x18\x02 \x03(\x02\"\xa5\x04\n\x0f\x44\x61tasetSettings\x12\x1a\n\x12images_per_trigger\x18\x01 \x01(\x03\x12\x10\n\x08ntrigger\x18\x02 \x01(\x03\x12\x13\n\tsummation\x18\x03 \x01(\x03H\x00\x12\x17\n\rimage_time_us\x18\x04 \x01(\x03H\x00\x12\x12\n\nbeam_x_pxl\x18\x05 \x01(\x02\x12\x12\n\nbeam_y_pxl\x18\x06 \x01(\x02\x12\x1c\n\x14\x64\x65tector_distance_mm\x18\x07 \x01(\x02\x12\x19\n\x11photon_energy_keV\x18\x08 \x01(\x02\x12\x13\n\x0b\x66ile_prefix\x18\t \x01(\t\x12\x17\n\x0f\x64\x61ta_file_count\x18\n \x01(\x03\x12\x30\n\x0b\x63ompression\x18\x0b \x01(\x0e\x32\x1b.JFJochProtoBuf.Compression\x12\x13\n\x0bsample_name\x18\x0c \x01(\t\x12\x30\n\tunit_cell\x18\r \x01(\x0b\x32\x18.JFJochProtoBuf.UnitCellH\x01\x88\x01\x01\x12\x1a\n\x12space_group_number\x18\x0e \x01(\x03\x12\x36\n\x11scattering_vector\x18\x0f \x01(\x0b\x32\x16.JFJochProtoBuf.VectorH\x02\x88\x01\x01\x12\x18\n\x10\x61pply_pixel_mask\x18\x10 \x01(\x08\x12\x12\n\nbinning2x2\x18\x11 \x01(\x08\x42\x08\n\x06timingB\x0c\n\n_unit_cellB\x14\n\x12_scattering_vector\"\xf7\x02\n\x10\x44\x65tectorSettings\x12\x15\n\rframe_time_us\x18\x01 \x01(\x03\x12\x1a\n\rcount_time_us\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x1a\n\x12storage_cell_count\x18\x03 \x01(\x03\x12%\n\x1duse_internal_packet_generator\x18\x04 \x01(\x08\x12\x18\n\x10\x63ollect_raw_data\x18\x05 \x01(\x08\x12\x1f\n\x12pedestal_g0_frames\x18\x06 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\x12pedestal_g1_frames\x18\x07 \x01(\x03H\x02\x88\x01\x01\x12\x1f\n\x12pedestal_g2_frames\x18\x08 \x01(\x03H\x03\x88\x01\x01\x12\x19\n\x11\x63onversion_on_cpu\x18\t \x01(\x08\x42\x10\n\x0e_count_time_usB\x15\n\x13_pedestal_g0_framesB\x15\n\x13_pedestal_g1_framesB\x15\n\x13_pedestal_g2_frames\"b\n\x16\x44\x65tectorModuleGeometry\x12\x0e\n\x06pixel0\x18\x01 \x01(\x03\x12\x1b\n\x13\x66\x61st_direction_step\x18\x02 \x01(\x03\x12\x1b\n\x13slow_direction_step\x18\x03 \x01(\x03\"z\n\x10\x44\x65tectorGeometry\x12\x11\n\twidth_pxl\x18\x01 \x01(\x03\x12\x12\n\nheight_pxl\x18\x02 \x01(\x03\x12?\n\x0fmodule_geometry\x18\x03 \x03(\x0b\x32&.JFJochProtoBuf.DetectorModuleGeometry\"\xc1\x01\n\x08\x44\x65tector\x12\x10\n\x08nmodules\x18\x01 \x01(\x03\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x15\n\rpixel_size_mm\x18\x03 \x01(\x02\x12\x17\n\x0fmodule_hostname\x18\x04 \x03(\t\x12\x32\n\x08geometry\x18\x05 \x01(\x0b\x32 .JFJochProtoBuf.DetectorGeometry\x12*\n\x04type\x18\x06 \x01(\x0e\x32\x1c.JFJochProtoBuf.DetectorType\"\xe1\x05\n\x10InternalSettings\x12\"\n\x1a\x66rame_time_pedestalG1G2_us\x18\x01 \x01(\x03\x12\x15\n\rframe_time_us\x18\x03 \x01(\x03\x12\x15\n\rcount_time_us\x18\x04 \x01(\x03\x12*\n\x08\x64\x65tector\x18\x05 \x01(\x0b\x32\x18.JFJochProtoBuf.Detector\x12\x14\n\x0cndatastreams\x18\x06 \x01(\x03\x12&\n\x1einternal_fpga_packet_generator\x18\t \x01(\x08\x12\x15\n\rstorage_cells\x18\n \x01(\x03\x12\x1a\n\x12storage_cell_start\x18\x0b \x01(\x03\x12\x1a\n\x12pedestal_g0_frames\x18\x0c \x01(\x03\x12\x1a\n\x12pedestal_g1_frames\x18\r \x01(\x03\x12\x1a\n\x12pedestal_g2_frames\x18\x0e \x01(\x03\x12\x19\n\x11preview_period_us\x18\x0f \x01(\x03\x12\x1e\n\x16spot_finding_period_us\x18\x10 \x01(\x03\x12*\n\x04mode\x18\x13 \x01(\x0e\x32\x1c.JFJochProtoBuf.DetectorMode\x12\x19\n\x11mask_module_edges\x18\x14 \x01(\x08\x12\x17\n\x0fmask_chip_edges\x18\x15 \x01(\x08\x12\x16\n\x0eipv4_base_addr\x18\x16 \x01(\x03\x12\r\n\x05low_q\x18\x1a \x01(\x02\x12\x0e\n\x06high_q\x18\x1b \x01(\x02\x12\x11\n\tq_spacing\x18\x1c \x01(\x02\x12\x10\n\x08git_sha1\x18\x1d \x01(\t\x12\x10\n\x08git_date\x18\x1e \x01(\t\x12\x19\n\x11\x63onversion_on_cpu\x18\x1f \x01(\x08\x12\x13\n\x0bsource_name\x18 \x01(\t\x12\x19\n\x11source_name_short\x18! \x01(\t\x12\x17\n\x0finstrument_name\x18\" \x01(\t\x12\x1d\n\x15instrument_name_short\x18# \x01(\t\"|\n\x14JungfraujochSettings\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x1f.JFJochProtoBuf.DatasetSettings\x12\x32\n\x08internal\x18\x02 \x01(\x0b\x32 .JFJochProtoBuf.InternalSettings\"\x1e\n\nJFPedestal\x12\x10\n\x08pedestal\x18\x01 \x01(\x0c\"-\n\x11JFGainCalibration\x12\x18\n\x10gain_calibration\x18\x01 \x01(\x0c\"\xb2\x01\n\rJFCalibration\x12\x10\n\x08nmodules\x18\x01 \x01(\x04\x12\x16\n\x0enstorage_cells\x18\x02 \x01(\x04\x12,\n\x08pedestal\x18\x03 \x03(\x0b\x32\x1a.JFJochProtoBuf.JFPedestal\x12\x0c\n\x04mask\x18Line truncated
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cjfjoch.proto\x12\x0eJFJochProtoBuf\"\x07\n\x05\x45mpty\"W\n\x08UnitCell\x12\t\n\x01\x61\x18\x01 \x01(\x02\x12\t\n\x01\x62\x18\x02 \x01(\x02\x12\t\n\x01\x63\x18\x03 \x01(\x02\x12\r\n\x05\x61lpha\x18\x04 \x01(\x02\x12\x0c\n\x04\x62\x65ta\x18\x05 \x01(\x02\x12\r\n\x05gamma\x18\x06 \x01(\x02\")\n\x06Vector\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02\"|\n\x10RotationSettings\x12\x17\n\x0fstart_angle_deg\x18\x01 \x01(\x02\x12 \n\x18\x61ngle_incr_per_image_deg\x18\x02 \x01(\x02\x12-\n\rrotation_axis\x18\x03 \x01(\x0b\x32\x16.JFJochProtoBuf.Vector\"\x1c\n\x04Plot\x12\t\n\x01x\x18\x01 \x03(\x02\x12\t\n\x01y\x18\x02 \x03(\x02\"\xa5\x04\n\x0f\x44\x61tasetSettings\x12\x1a\n\x12images_per_trigger\x18\x01 \x01(\x03\x12\x10\n\x08ntrigger\x18\x02 \x01(\x03\x12\x13\n\tsummation\x18\x03 \x01(\x03H\x00\x12\x17\n\rimage_time_us\x18\x04 \x01(\x03H\x00\x12\x12\n\nbeam_x_pxl\x18\x05 \x01(\x02\x12\x12\n\nbeam_y_pxl\x18\x06 \x01(\x02\x12\x1c\n\x14\x64\x65tector_distance_mm\x18\x07 \x01(\x02\x12\x19\n\x11photon_energy_keV\x18\x08 \x01(\x02\x12\x13\n\x0b\x66ile_prefix\x18\t \x01(\t\x12\x17\n\x0f\x64\x61ta_file_count\x18\n \x01(\x03\x12\x30\n\x0b\x63ompression\x18\x0b \x01(\x0e\x32\x1b.JFJochProtoBuf.Compression\x12\x13\n\x0bsample_name\x18\x0c \x01(\t\x12\x30\n\tunit_cell\x18\r \x01(\x0b\x32\x18.JFJochProtoBuf.UnitCellH\x01\x88\x01\x01\x12\x1a\n\x12space_group_number\x18\x0e \x01(\x03\x12\x36\n\x11scattering_vector\x18\x0f \x01(\x0b\x32\x16.JFJochProtoBuf.VectorH\x02\x88\x01\x01\x12\x18\n\x10\x61pply_pixel_mask\x18\x10 \x01(\x08\x12\x12\n\nbinning2x2\x18\x11 \x01(\x08\x42\x08\n\x06timingB\x0c\n\n_unit_cellB\x14\n\x12_scattering_vector\"\xf7\x02\n\x10\x44\x65tectorSettings\x12\x15\n\rframe_time_us\x18\x01 \x01(\x03\x12\x1a\n\rcount_time_us\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x1a\n\x12storage_cell_count\x18\x03 \x01(\x03\x12%\n\x1duse_internal_packet_generator\x18\x04 \x01(\x08\x12\x18\n\x10\x63ollect_raw_data\x18\x05 \x01(\x08\x12\x1f\n\x12pedestal_g0_frames\x18\x06 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\x12pedestal_g1_frames\x18\x07 \x01(\x03H\x02\x88\x01\x01\x12\x1f\n\x12pedestal_g2_frames\x18\x08 \x01(\x03H\x03\x88\x01\x01\x12\x19\n\x11\x63onversion_on_cpu\x18\t \x01(\x08\x42\x10\n\x0e_count_time_usB\x15\n\x13_pedestal_g0_framesB\x15\n\x13_pedestal_g1_framesB\x15\n\x13_pedestal_g2_frames\"b\n\x16\x44\x65tectorModuleGeometry\x12\x0e\n\x06pixel0\x18\x01 \x01(\x03\x12\x1b\n\x13\x66\x61st_direction_step\x18\x02 \x01(\x03\x12\x1b\n\x13slow_direction_step\x18\x03 \x01(\x03\"z\n\x10\x44\x65tectorGeometry\x12\x11\n\twidth_pxl\x18\x01 \x01(\x03\x12\x12\n\nheight_pxl\x18\x02 \x01(\x03\x12?\n\x0fmodule_geometry\x18\x03 \x03(\x0b\x32&.JFJochProtoBuf.DetectorModuleGeometry\"\xc1\x01\n\x08\x44\x65tector\x12\x10\n\x08nmodules\x18\x01 \x01(\x03\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x15\n\rpixel_size_mm\x18\x03 \x01(\x02\x12\x17\n\x0fmodule_hostname\x18\x04 \x03(\t\x12\x32\n\x08geometry\x18\x05 \x01(\x0b\x32 .JFJochProtoBuf.DetectorGeometry\x12*\n\x04type\x18\x06 \x01(\x0e\x32\x1c.JFJochProtoBuf.DetectorType\"\xe1\x05\n\x10InternalSettings\x12\"\n\x1a\x66rame_time_pedestalG1G2_us\x18\x01 \x01(\x03\x12\x15\n\rframe_time_us\x18\x03 \x01(\x03\x12\x15\n\rcount_time_us\x18\x04 \x01(\x03\x12*\n\x08\x64\x65tector\x18\x05 \x01(\x0b\x32\x18.JFJochProtoBuf.Detector\x12\x14\n\x0cndatastreams\x18\x06 \x01(\x03\x12&\n\x1einternal_fpga_packet_generator\x18\t \x01(\x08\x12\x15\n\rstorage_cells\x18\n \x01(\x03\x12\x1a\n\x12storage_cell_start\x18\x0b \x01(\x03\x12\x1a\n\x12pedestal_g0_frames\x18\x0c \x01(\x03\x12\x1a\n\x12pedestal_g1_frames\x18\r \x01(\x03\x12\x1a\n\x12pedestal_g2_frames\x18\x0e \x01(\x03\x12\x19\n\x11preview_period_us\x18\x0f \x01(\x03\x12\x1e\n\x16spot_finding_period_us\x18\x10 \x01(\x03\x12*\n\x04mode\x18\x13 \x01(\x0e\x32\x1c.JFJochProtoBuf.DetectorMode\x12\x19\n\x11mask_module_edges\x18\x14 \x01(\x08\x12\x17\n\x0fmask_chip_edges\x18\x15 \x01(\x08\x12\x16\n\x0eipv4_base_addr\x18\x16 \x01(\x03\x12\r\n\x05low_q\x18\x1a \x01(\x02\x12\x0e\n\x06high_q\x18\x1b \x01(\x02\x12\x11\n\tq_spacing\x18\x1c \x01(\x02\x12\x10\n\x08git_sha1\x18\x1d \x01(\t\x12\x10\n\x08git_date\x18\x1e \x01(\t\x12\x19\n\x11\x63onversion_on_cpu\x18\x1f \x01(\x08\x12\x13\n\x0bsource_name\x18 \x01(\t\x12\x19\n\x11source_name_short\x18! \x01(\t\x12\x17\n\x0finstrument_name\x18\" \x01(\t\x12\x1d\n\x15instrument_name_short\x18# \x01(\t\"|\n\x14JungfraujochSettings\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x1f.JFJochProtoBuf.DatasetSettings\x12\x32\n\x08internal\x18\x02 \x01(\x0b\x32 .JFJochProtoBuf.InternalSettings\"\x1e\n\nJFPedestal\x12\x10\n\x08pedestal\x18\x01 \x01(\x0c\"-\n\x11JFGainCalibration\x12\x18\n\x10gain_calibration\x18\x01 \x01(\x0c\"\xb2\x01\n\rJFCalibration\x12\x10\n\x08nmodules\x18\x01 \x01(\x04\x12\x16\n\x0enstorage_cells\x18\x02 \x01(\x04\x12,\n\x08pedestal\x18\x03 \x03(\x0b\x32\x1a.JFJochProtoBuf.JFPedestal\x12\x0c\n\x04mask\x18Line truncated
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'jfjoch_pb2', globals())
@@ -24,18 +24,18 @@ if _descriptor._USE_C_DESCRIPTORS == False:
_RADIALINTEGRATIONPROFILES_PLOTSENTRY._serialized_options = b'8\001'
_FPGASTATUS_FIFOSTATUSENTRY._options = None
_FPGASTATUS_FIFOSTATUSENTRY._serialized_options = b'8\001'
_COMPRESSION._serialized_start=8705
_COMPRESSION._serialized_end=8789
_DETECTORTYPE._serialized_start=8791
_DETECTORTYPE._serialized_end=8830
_DETECTORMODE._serialized_start=8832
_DETECTORMODE._serialized_end=8922
_FPGAFIFOSTATUS._serialized_start=8924
_FPGAFIFOSTATUS._serialized_end=8974
_STATE._serialized_start=8976
_STATE._serialized_end=9070
_PLOTTYPE._serialized_start=9072
_PLOTTYPE._serialized_end=9176
_COMPRESSION._serialized_start=8737
_COMPRESSION._serialized_end=8821
_DETECTORTYPE._serialized_start=8823
_DETECTORTYPE._serialized_end=8862
_DETECTORMODE._serialized_start=8864
_DETECTORMODE._serialized_end=8954
_FPGAFIFOSTATUS._serialized_start=8956
_FPGAFIFOSTATUS._serialized_end=9006
_STATE._serialized_start=9008
_STATE._serialized_end=9102
_PLOTTYPE._serialized_start=9104
_PLOTTYPE._serialized_end=9208
_EMPTY._serialized_start=32
_EMPTY._serialized_end=39
_UNITCELL._serialized_start=41
@@ -83,57 +83,57 @@ if _descriptor._USE_C_DESCRIPTORS == False:
_PLOTREQUEST._serialized_start=4159
_PLOTREQUEST._serialized_end=4261
_RADIALINTEGRATIONPROFILES._serialized_start=4264
_RADIALINTEGRATIONPROFILES._serialized_end=4428
_RADIALINTEGRATIONPROFILES_PLOTSENTRY._serialized_start=4362
_RADIALINTEGRATIONPROFILES_PLOTSENTRY._serialized_end=4428
_WRITERINPUT._serialized_start=4430
_WRITERINPUT._serialized_end=4492
_DATAFILESTATISTICS._serialized_start=4494
_DATAFILESTATISTICS._serialized_end=4545
_WRITEROUTPUT._serialized_start=4548
_WRITEROUTPUT._serialized_end=4689
_DETECTORMODULECONFIG._serialized_start=4692
_DETECTORMODULECONFIG._serialized_end=4950
_DETECTORCONFIG._serialized_start=4952
_DETECTORCONFIG._serialized_end=5048
_DETECTORINPUT._serialized_start=5051
_DETECTORINPUT._serialized_end=5300
_DETECTOROUTPUT._serialized_start=5302
_DETECTOROUTPUT._serialized_end=5318
_DETECTORSTATUS._serialized_start=5320
_DETECTORSTATUS._serialized_end=5418
_FPGASTATUS._serialized_start=5421
_FPGASTATUS._serialized_end=6491
_FPGASTATUS_FIFOSTATUSENTRY._serialized_start=6410
_FPGASTATUS_FIFOSTATUSENTRY._serialized_end=6491
_DATAPROCESSINGSETTINGS._serialized_start=6494
_DATAPROCESSINGSETTINGS._serialized_end=6840
_PREVIEWFRAME._serialized_start=6843
_PREVIEWFRAME._serialized_end=7112
_MODULESTATISTICS._serialized_start=7115
_MODULESTATISTICS._serialized_end=7352
_IMAGE._serialized_start=7354
_IMAGE._serialized_end=7427
_MASKTOLOAD._serialized_start=7429
_MASKTOLOAD._serialized_end=7475
_MEASUREMENTSTATISTICS._serialized_start=7478
_MEASUREMENTSTATISTICS._serialized_end=8091
_BROKERSTATUS._serialized_start=8094
_BROKERSTATUS._serialized_end=8309
_BROKERFULLSTATUS._serialized_start=8312
_BROKERFULLSTATUS._serialized_end=8476
_DETECTORLISTELEMENT._serialized_start=8478
_DETECTORLISTELEMENT._serialized_end=8550
_DETECTORLIST._serialized_start=8552
_DETECTORLIST._serialized_end=8670
_DETECTORSELECTION._serialized_start=8672
_DETECTORSELECTION._serialized_end=8703
_GRPC_JFJOCHRECEIVER._serialized_start=9179
_GRPC_JFJOCHRECEIVER._serialized_end=9946
_GRPC_JFJOCHWRITER._serialized_start=9949
_GRPC_JFJOCHWRITER._serialized_end=10151
_GRPC_JFJOCHDETECTOR._serialized_start=10154
_GRPC_JFJOCHDETECTOR._serialized_end=10540
_GRPC_JFJOCHBROKER._serialized_start=10543
_GRPC_JFJOCHBROKER._serialized_end=12232
_RADIALINTEGRATIONPROFILES._serialized_end=4460
_RADIALINTEGRATIONPROFILES_PLOTSENTRY._serialized_start=4394
_RADIALINTEGRATIONPROFILES_PLOTSENTRY._serialized_end=4460
_WRITERINPUT._serialized_start=4462
_WRITERINPUT._serialized_end=4524
_DATAFILESTATISTICS._serialized_start=4526
_DATAFILESTATISTICS._serialized_end=4577
_WRITEROUTPUT._serialized_start=4580
_WRITEROUTPUT._serialized_end=4721
_DETECTORMODULECONFIG._serialized_start=4724
_DETECTORMODULECONFIG._serialized_end=4982
_DETECTORCONFIG._serialized_start=4984
_DETECTORCONFIG._serialized_end=5080
_DETECTORINPUT._serialized_start=5083
_DETECTORINPUT._serialized_end=5332
_DETECTOROUTPUT._serialized_start=5334
_DETECTOROUTPUT._serialized_end=5350
_DETECTORSTATUS._serialized_start=5352
_DETECTORSTATUS._serialized_end=5450
_FPGASTATUS._serialized_start=5453
_FPGASTATUS._serialized_end=6523
_FPGASTATUS_FIFOSTATUSENTRY._serialized_start=6442
_FPGASTATUS_FIFOSTATUSENTRY._serialized_end=6523
_DATAPROCESSINGSETTINGS._serialized_start=6526
_DATAPROCESSINGSETTINGS._serialized_end=6872
_PREVIEWFRAME._serialized_start=6875
_PREVIEWFRAME._serialized_end=7144
_MODULESTATISTICS._serialized_start=7147
_MODULESTATISTICS._serialized_end=7384
_IMAGE._serialized_start=7386
_IMAGE._serialized_end=7459
_MASKTOLOAD._serialized_start=7461
_MASKTOLOAD._serialized_end=7507
_MEASUREMENTSTATISTICS._serialized_start=7510
_MEASUREMENTSTATISTICS._serialized_end=8123
_BROKERSTATUS._serialized_start=8126
_BROKERSTATUS._serialized_end=8341
_BROKERFULLSTATUS._serialized_start=8344
_BROKERFULLSTATUS._serialized_end=8508
_DETECTORLISTELEMENT._serialized_start=8510
_DETECTORLISTELEMENT._serialized_end=8582
_DETECTORLIST._serialized_start=8584
_DETECTORLIST._serialized_end=8702
_DETECTORSELECTION._serialized_start=8704
_DETECTORSELECTION._serialized_end=8735
_GRPC_JFJOCHRECEIVER._serialized_start=9211
_GRPC_JFJOCHRECEIVER._serialized_end=9978
_GRPC_JFJOCHWRITER._serialized_start=9981
_GRPC_JFJOCHWRITER._serialized_end=10183
_GRPC_JFJOCHDETECTOR._serialized_start=10186
_GRPC_JFJOCHDETECTOR._serialized_end=10572
_GRPC_JFJOCHBROKER._serialized_start=10575
_GRPC_JFJOCHBROKER._serialized_end=12264
# @@protoc_insertion_point(module_scope)
+7 -1
View File
@@ -153,6 +153,7 @@ JFJochReceiver::JFJochReceiver(const JFJochProtoBuf::ReceiverInput &settings,
if (rad_int_mapping) {
message.rad_int_bin_number = rad_int_mapping->GetBinNumber();
message.rad_int_bin_to_q = rad_int_mapping->GetBinToQ();
message.rad_int_solid_angle_corr = rad_int_mapping->GetSolidAngleCorr();
} else
message.rad_int_bin_number = 0;
@@ -704,12 +705,17 @@ JFJochProtoBuf::RadialIntegrationProfiles JFJochReceiver::GetRadialIntegrationPr
auto &map = *ret.mutable_plots();
if (rad_int_profile)
if (rad_int_profile) {
rad_int_profile->GetPlot(map["dataset"], true);
auto &corr = rad_int_profile->GetSolidAngleCorr();
for (const auto &i: corr)
ret.add_solid_angle_correction(i);
}
for (int i = 0; i < rad_int_profile_per_file.size(); i++)
rad_int_profile_per_file[i]->GetPlot(map["file" + std::to_string(i)], true);
return ret;
}
+3 -1
View File
@@ -59,7 +59,8 @@ TEST_CASE("CBORSerialize_Start", "[CBOR]") {
.instrument_name_short = "PXIII",
.rad_int_bin_number = 35,
.summation = 567,
.rad_int_bin_to_q = {0.1, 0.2, 0.3, 0.5}
.rad_int_bin_to_q = {0.1, 0.2, 0.3, 0.5},
.rad_int_solid_angle_corr = {10, 20, 30, 50}
};
message.pixel_mask["sc0"] = std::vector<uint32_t>(456*457, 15);
@@ -113,6 +114,7 @@ TEST_CASE("CBORSerialize_Start", "[CBOR]") {
CHECK(output_message.rad_int_bin_number == message.rad_int_bin_number);
CHECK(output_message.summation == message.summation);
CHECK(output_message.rad_int_bin_to_q == message.rad_int_bin_to_q);
CHECK(output_message.rad_int_solid_angle_corr == message.rad_int_solid_angle_corr);
for (int i = 0; i < 3; i++)
CHECK(output_message.detector_translation[i] == message.detector_translation[i]);
+4
View File
@@ -262,6 +262,10 @@ void HDF5Metadata::RadInt(HDF5File *hdf5_file, const StartMessage &start, const
HDF5Group(*hdf5_file, "/entry/result").NXClass("NXcollection");
HDF5Group rad_int_group(*hdf5_file, "/entry/result/rad_int");
rad_int_group.SaveVector("bin_to_q", start.rad_int_bin_to_q);
if (!start.rad_int_solid_angle_corr.empty())
rad_int_group.SaveVector("solid_angle_corr", start.rad_int_solid_angle_corr);
for (const auto &[x,y] : end.rad_int_result)
rad_int_group.SaveVector(x, y);
}