DiffractionExperiment: solid angle correction

This commit is contained in:
leonarski_f committed 2023-05-09 14:03:59 +02:00
1 parent 5d63bac30f
commit a867b1c596
10 files changed
+163 -117

No files matched your search

+23 -1
View File
@@ -48,6 +48,7 @@ DiffractionExperiment::DiffractionExperiment(const DetectorSetup& det_setup) {
dataset.set_images_per_trigger(1);
dataset.set_summation(1);
dataset.set_space_group_number(0); // not set
dataset.set_rad_int_solid_angle_corr(false);
dataset.set_compression(JFJochProtoBuf::BSHUF_LZ4);
@@ -766,6 +767,17 @@ float DiffractionExperiment::ResToPxl(float resolution) const {
return tan_2theta * GetDetectorDistance_mm() / GetPixelSize_mm();
}
float DiffractionExperiment::CalcRadIntSolidAngleCorr(float q) const {
if (!GetSolidAngleCorrection())
return 1.0f;
float sin_theta = q * GetWavelength_A() / (4 * static_cast<float>(M_PI));
float theta = asinf(sin_theta);
float cos_two_theta = cosf(2 * theta);
float cos_two_theta_3 = cos_two_theta * cos_two_theta * cos_two_theta;
return cos_two_theta_3;
}
Coord DiffractionExperiment::LabCoord(float detector_x, float detector_y) const {
// Assumes planar detector, 90 deg towards beam
return {(detector_x - GetBeamX_pxl()) * GetPixelSize_mm() ,
@@ -1173,4 +1185,14 @@ void DiffractionExperiment::GetDetectorModuleHostname(std::vector<std::string> &
std::string DiffractionExperiment::GetDetectorDescription() const {
return internal.detector().description();
}
}
bool DiffractionExperiment::GetSolidAngleCorrection() const {
return dataset.rad_int_solid_angle_corr();
}
DiffractionExperiment &DiffractionExperiment::RadIntSolidAngleCorr(bool input) {
dataset.set_rad_int_solid_angle_corr(input);
return *this;
}
+3
View File
@@ -93,6 +93,7 @@ public:
DiffractionExperiment& InstrumentNameShort(std::string input);
DiffractionExperiment& Binning2x2(bool input);
DiffractionExperiment& ApplyPixelMaskInFPGA(bool input);
DiffractionExperiment& RadIntSolidAngleCorr(bool input);
operator JFJochProtoBuf::JungfraujochSettings() const;
operator JFJochProtoBuf::DetectorInput() const;
@@ -187,6 +188,7 @@ public:
float ResToPxl(float resolution) const;
Coord LabCoord(float detector_x, float detector_y) const;
float PxlToRes(float detector_x, float detector_y) const;
float CalcRadIntSolidAngleCorr(float q) const;
float GetLowQForRadialInt_recipA() const;
float GetHighQForRadialInt_recipA() const;
@@ -207,6 +209,7 @@ public:
bool GetApplyPixelMaskInFPGA() const;
float GetPixelSize_mm() const;
bool GetBinning2x2() const;
bool GetSolidAngleCorrection() const;
std::string GetSourceName() const;
std::string GetSourceNameShort() const;
+1
View File
@@ -100,6 +100,7 @@ message DatasetSettings {
bool apply_pixel_mask = 16;
bool binning2x2 = 17;
bool rad_int_solid_angle_corr = 18;
}
message DetectorSettings {
+9 -4
View File
@@ -23,19 +23,24 @@ void RadialIntegrationProfile::Add(const std::vector<int32_t> &in_sum, const std
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Mismatch in size of sum/count datasets");
}
std::vector<float> RadialIntegrationProfile::GetResult() const {
std::vector<float> RadialIntegrationProfile::GetResult(const DiffractionExperiment &experiment) const {
std::vector<float> rad_int_profile(sum.size(), 0);
for (int i = 0; i < sum.size(); i++) {
float tmp = 0;
if (count[i] > 0)
rad_int_profile[i] = static_cast<float>(sum[i]) / static_cast<float>(count[i]);
tmp = static_cast<float>(sum[i]) / static_cast<float>(count[i]);
if (experiment.GetSolidAngleCorrection())
tmp /= experiment.CalcRadIntSolidAngleCorr(bin_to_q[i]);
rad_int_profile[i] = tmp;
}
return rad_int_profile;
}
void RadialIntegrationProfile::GetPlot(JFJochProtoBuf::Plot &plot) const {
void RadialIntegrationProfile::GetPlot(JFJochProtoBuf::Plot &plot, const DiffractionExperiment &experiment) const {
std::unique_lock<std::mutex> ul(m);
std::vector<float> rad_int_profile = GetResult();
std::vector<float> rad_int_profile = GetResult(experiment);
*plot.mutable_x() = {bin_to_q.begin(), bin_to_q.end()};
*plot.mutable_y() = {rad_int_profile.begin(), rad_int_profile.end()};
+2 -2
View File
@@ -18,8 +18,8 @@ class RadialIntegrationProfile {
public:
explicit RadialIntegrationProfile(RadialIntegrationMapping &mapping);
void Add(const std::vector<int32_t> &sum, const std::vector<int32_t> &count);
std::vector<float> GetResult() const;
void GetPlot(JFJochProtoBuf::Plot &plot) const;
std::vector<float> GetResult(const DiffractionExperiment &experiment) const;
void GetPlot(JFJochProtoBuf::Plot &plot, const DiffractionExperiment &experiment) const;
};
#endif //JUNGFRAUJOCH_RADIALINTEGRATIONPROFILE_H
+102 -102
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\"\xc7\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\x12 \n\x18rad_int_solid_angle_corr\x18\x12 \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\x3Line truncated
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'jfjoch_pb2', globals())
@@ -22,18 +22,18 @@ if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
_FPGASTATUS_FIFOSTATUSENTRY._options = None
_FPGASTATUS_FIFOSTATUSENTRY._serialized_options = b'8\001'
_COMPRESSION._serialized_start=8618
_COMPRESSION._serialized_end=8702
_DETECTORTYPE._serialized_start=8704
_DETECTORTYPE._serialized_end=8743
_DETECTORMODE._serialized_start=8745
_DETECTORMODE._serialized_end=8835
_FPGAFIFOSTATUS._serialized_start=8837
_FPGAFIFOSTATUS._serialized_end=8887
_STATE._serialized_start=8889
_STATE._serialized_end=8983
_PLOTTYPE._serialized_start=8985
_PLOTTYPE._serialized_end=9061
_COMPRESSION._serialized_start=8652
_COMPRESSION._serialized_end=8736
_DETECTORTYPE._serialized_start=8738
_DETECTORTYPE._serialized_end=8777
_DETECTORMODE._serialized_start=8779
_DETECTORMODE._serialized_end=8869
_FPGAFIFOSTATUS._serialized_start=8871
_FPGAFIFOSTATUS._serialized_end=8921
_STATE._serialized_start=8923
_STATE._serialized_end=9017
_PLOTTYPE._serialized_start=9019
_PLOTTYPE._serialized_end=9095
_EMPTY._serialized_start=32
_EMPTY._serialized_end=39
_UNITCELL._serialized_start=41
@@ -45,93 +45,93 @@ if _descriptor._USE_C_DESCRIPTORS == False:
_PLOT._serialized_start=299
_PLOT._serialized_end=327
_DATASETSETTINGS._serialized_start=330
_DATASETSETTINGS._serialized_end=879
_DETECTORSETTINGS._serialized_start=882
_DETECTORSETTINGS._serialized_end=1257
_DETECTORMODULEGEOMETRY._serialized_start=1259
_DETECTORMODULEGEOMETRY._serialized_end=1357
_DETECTORGEOMETRY._serialized_start=1359
_DETECTORGEOMETRY._serialized_end=1481
_DETECTOR._serialized_start=1484
_DETECTOR._serialized_end=1677
_INTERNALSETTINGS._serialized_start=1680
_INTERNALSETTINGS._serialized_end=2417
_JUNGFRAUJOCHSETTINGS._serialized_start=2419
_JUNGFRAUJOCHSETTINGS._serialized_end=2543
_JFPEDESTAL._serialized_start=2545
_JFPEDESTAL._serialized_end=2575
_JFGAINCALIBRATION._serialized_start=2577
_JFGAINCALIBRATION._serialized_end=2622
_JFCALIBRATION._serialized_start=2625
_JFCALIBRATION._serialized_end=2803
_JFCALIBRATIONSTATISTICS._serialized_start=2805
_JFCALIBRATIONSTATISTICS._serialized_end=2891
_ACQUISITIONDEVICESTATISTICS._serialized_start=2894
_ACQUISITIONDEVICESTATISTICS._serialized_end=3167
_RECEIVERINPUT._serialized_start=3170
_RECEIVERINPUT._serialized_end=3306
_RECEIVEROUTPUT._serialized_start=3309
_RECEIVEROUTPUT._serialized_end=3735
_RECEIVERNETWORKCONFIGDEVICE._serialized_start=3737
_RECEIVERNETWORKCONFIGDEVICE._serialized_end=3821
_RECEIVERNETWORKCONFIG._serialized_start=3823
_RECEIVERNETWORKCONFIG._serialized_end=3907
_RECEIVERSTATUS._serialized_start=3910
_RECEIVERSTATUS._serialized_end=4057
_PLOTREQUEST._serialized_start=4059
_PLOTREQUEST._serialized_end=4171
_RECEIVERDATAPROCESSINGPLOTS._serialized_start=4174
_RECEIVERDATAPROCESSINGPLOTS._serialized_end=4384
_WRITERINPUT._serialized_start=4386
_WRITERINPUT._serialized_end=4448
_DATAFILESTATISTICS._serialized_start=4450
_DATAFILESTATISTICS._serialized_end=4501
_WRITEROUTPUT._serialized_start=4504
_WRITEROUTPUT._serialized_end=4645
_DETECTORMODULECONFIG._serialized_start=4648
_DETECTORMODULECONFIG._serialized_end=4906
_DETECTORCONFIG._serialized_start=4908
_DETECTORCONFIG._serialized_end=5004
_DETECTORINPUT._serialized_start=5007
_DETECTORINPUT._serialized_end=5256
_DETECTOROUTPUT._serialized_start=5258
_DETECTOROUTPUT._serialized_end=5274
_DETECTORSTATUS._serialized_start=5276
_DETECTORSTATUS._serialized_end=5374
_FPGASTATUS._serialized_start=5377
_FPGASTATUS._serialized_end=6447
_FPGASTATUS_FIFOSTATUSENTRY._serialized_start=6366
_FPGASTATUS_FIFOSTATUSENTRY._serialized_end=6447
_INDEXERDATAPROCESSINGPLOTS._serialized_start=6449
_INDEXERDATAPROCESSINGPLOTS._serialized_end=6522
_DATAPROCESSINGSETTINGS._serialized_start=6525
_DATAPROCESSINGSETTINGS._serialized_end=6871
_PREVIEWFRAME._serialized_start=6874
_PREVIEWFRAME._serialized_end=7143
_MODULESTATISTICS._serialized_start=7146
_MODULESTATISTICS._serialized_end=7383
_IMAGE._serialized_start=7385
_IMAGE._serialized_end=7458
_MASKTOLOAD._serialized_start=7460
_MASKTOLOAD._serialized_end=7506
_MEASUREMENTSTATISTICS._serialized_start=7509
_MEASUREMENTSTATISTICS._serialized_end=8078
_BROKERSTATUS._serialized_start=8081
_BROKERSTATUS._serialized_end=8222
_BROKERFULLSTATUS._serialized_start=8225
_BROKERFULLSTATUS._serialized_end=8389
_DETECTORLISTELEMENT._serialized_start=8391
_DETECTORLISTELEMENT._serialized_end=8463
_DETECTORLIST._serialized_start=8465
_DETECTORLIST._serialized_end=8583
_DETECTORSELECTION._serialized_start=8585
_DETECTORSELECTION._serialized_end=8616
_GRPC_JFJOCHRECEIVER._serialized_start=9064
_GRPC_JFJOCHRECEIVER._serialized_end=9731
_GRPC_JFJOCHWRITER._serialized_start=9734
_GRPC_JFJOCHWRITER._serialized_end=9936
_GRPC_JFJOCHDETECTOR._serialized_start=9939
_GRPC_JFJOCHDETECTOR._serialized_end=10325
_GRPC_JFJOCHBROKER._serialized_start=10328
_GRPC_JFJOCHBROKER._serialized_end=11917
_DATASETSETTINGS._serialized_end=913
_DETECTORSETTINGS._serialized_start=916
_DETECTORSETTINGS._serialized_end=1291
_DETECTORMODULEGEOMETRY._serialized_start=1293
_DETECTORMODULEGEOMETRY._serialized_end=1391
_DETECTORGEOMETRY._serialized_start=1393
_DETECTORGEOMETRY._serialized_end=1515
_DETECTOR._serialized_start=1518
_DETECTOR._serialized_end=1711
_INTERNALSETTINGS._serialized_start=1714
_INTERNALSETTINGS._serialized_end=2451
_JUNGFRAUJOCHSETTINGS._serialized_start=2453
_JUNGFRAUJOCHSETTINGS._serialized_end=2577
_JFPEDESTAL._serialized_start=2579
_JFPEDESTAL._serialized_end=2609
_JFGAINCALIBRATION._serialized_start=2611
_JFGAINCALIBRATION._serialized_end=2656
_JFCALIBRATION._serialized_start=2659
_JFCALIBRATION._serialized_end=2837
_JFCALIBRATIONSTATISTICS._serialized_start=2839
_JFCALIBRATIONSTATISTICS._serialized_end=2925
_ACQUISITIONDEVICESTATISTICS._serialized_start=2928
_ACQUISITIONDEVICESTATISTICS._serialized_end=3201
_RECEIVERINPUT._serialized_start=3204
_RECEIVERINPUT._serialized_end=3340
_RECEIVEROUTPUT._serialized_start=3343
_RECEIVEROUTPUT._serialized_end=3769
_RECEIVERNETWORKCONFIGDEVICE._serialized_start=3771
_RECEIVERNETWORKCONFIGDEVICE._serialized_end=3855
_RECEIVERNETWORKCONFIG._serialized_start=3857
_RECEIVERNETWORKCONFIG._serialized_end=3941
_RECEIVERSTATUS._serialized_start=3944
_RECEIVERSTATUS._serialized_end=4091
_PLOTREQUEST._serialized_start=4093
_PLOTREQUEST._serialized_end=4205
_RECEIVERDATAPROCESSINGPLOTS._serialized_start=4208
_RECEIVERDATAPROCESSINGPLOTS._serialized_end=4418
_WRITERINPUT._serialized_start=4420
_WRITERINPUT._serialized_end=4482
_DATAFILESTATISTICS._serialized_start=4484
_DATAFILESTATISTICS._serialized_end=4535
_WRITEROUTPUT._serialized_start=4538
_WRITEROUTPUT._serialized_end=4679
_DETECTORMODULECONFIG._serialized_start=4682
_DETECTORMODULECONFIG._serialized_end=4940
_DETECTORCONFIG._serialized_start=4942
_DETECTORCONFIG._serialized_end=5038
_DETECTORINPUT._serialized_start=5041
_DETECTORINPUT._serialized_end=5290
_DETECTOROUTPUT._serialized_start=5292
_DETECTOROUTPUT._serialized_end=5308
_DETECTORSTATUS._serialized_start=5310
_DETECTORSTATUS._serialized_end=5408
_FPGASTATUS._serialized_start=5411
_FPGASTATUS._serialized_end=6481
_FPGASTATUS_FIFOSTATUSENTRY._serialized_start=6400
_FPGASTATUS_FIFOSTATUSENTRY._serialized_end=6481
_INDEXERDATAPROCESSINGPLOTS._serialized_start=6483
_INDEXERDATAPROCESSINGPLOTS._serialized_end=6556
_DATAPROCESSINGSETTINGS._serialized_start=6559
_DATAPROCESSINGSETTINGS._serialized_end=6905
_PREVIEWFRAME._serialized_start=6908
_PREVIEWFRAME._serialized_end=7177
_MODULESTATISTICS._serialized_start=7180
_MODULESTATISTICS._serialized_end=7417
_IMAGE._serialized_start=7419
_IMAGE._serialized_end=7492
_MASKTOLOAD._serialized_start=7494
_MASKTOLOAD._serialized_end=7540
_MEASUREMENTSTATISTICS._serialized_start=7543
_MEASUREMENTSTATISTICS._serialized_end=8112
_BROKERSTATUS._serialized_start=8115
_BROKERSTATUS._serialized_end=8256
_BROKERFULLSTATUS._serialized_start=8259
_BROKERFULLSTATUS._serialized_end=8423
_DETECTORLISTELEMENT._serialized_start=8425
_DETECTORLISTELEMENT._serialized_end=8497
_DETECTORLIST._serialized_start=8499
_DETECTORLIST._serialized_end=8617
_DETECTORSELECTION._serialized_start=8619
_DETECTORSELECTION._serialized_end=8650
_GRPC_JFJOCHRECEIVER._serialized_start=9098
_GRPC_JFJOCHRECEIVER._serialized_end=9765
_GRPC_JFJOCHWRITER._serialized_start=9768
_GRPC_JFJOCHWRITER._serialized_end=9970
_GRPC_JFJOCHDETECTOR._serialized_start=9973
_GRPC_JFJOCHDETECTOR._serialized_end=10359
_GRPC_JFJOCHBROKER._serialized_start=10362
_GRPC_JFJOCHBROKER._serialized_end=11951
# @@protoc_insertion_point(module_scope)
+6 -4
View File
@@ -588,9 +588,11 @@ void JFJochReceiver::FinalizeMeasurement() {
message.write_master_file = true;
if (rad_int_profile)
message.rad_int_result["dataset"] = rad_int_profile->GetResult();
message.rad_int_result["dataset"]
= rad_int_profile->GetResult(experiment);
for (int i = 0; i < rad_int_profile_per_file.size(); i++)
message.rad_int_result["file" + std::to_string(i)] = rad_int_profile_per_file[i]->GetResult();
message.rad_int_result["file" + std::to_string(i)]
= rad_int_profile_per_file[i]->GetResult(experiment);
image_pusher.EndDataCollection(message);
logger.Info("Disconnected from writers");
@@ -646,10 +648,10 @@ JFJochProtoBuf::Plot JFJochReceiver::GetPlots(const JFJochProtoBuf::PlotRequest
case JFJochProtoBuf::RAD_INT:
if (request.has_file_number()) {
if (request.file_number() < rad_int_profile_per_file.size())
rad_int_profile_per_file[request.file_number()]->GetPlot(ret);
rad_int_profile_per_file[request.file_number()]->GetPlot(ret, experiment);
} else {
if (rad_int_profile)
rad_int_profile->GetPlot(ret);
rad_int_profile->GetPlot(ret, experiment);
}
break;
case JFJochProtoBuf::SPOT_COUNT:
+14 -1
View File
@@ -967,4 +967,17 @@ TEST_CASE("DiffractionExperiment_DetectorModuleHostname","[DiffractionExperiment
REQUIRE(h == h_out);
REQUIRE_NOTHROW(det_cfg = x.DetectorConfig(net_cfg));
}
}
TEST_CASE("DiffractionExperiment_SolidAngleCorrection","[DiffractionExperiment]") {
DiffractionExperiment x;
x.PhotonEnergy_keV(WVL_1A_IN_KEV);
x.RadIntSolidAngleCorr(false);
REQUIRE (x.CalcRadIntSolidAngleCorr(0.0) == 1.0f);
REQUIRE (x.CalcRadIntSolidAngleCorr(1.0) == 1.0f);
x.RadIntSolidAngleCorr(true);
REQUIRE(x.CalcRadIntSolidAngleCorr(0.0) == 1.0f);
REQUIRE(x.CalcRadIntSolidAngleCorr(2*M_PI) == Approx(0.5f*0.5f*0.5f));
}
+2 -2
View File
@@ -155,8 +155,8 @@ TEST_CASE("HDF5MasterFile_RadInt", "[HDF5][Full]") {
start_message.rad_int_bin_to_q = mapping.GetBinToQ();
EndMessage end_message;
end_message.number_of_images = x.GetImageNum();
end_message.rad_int_result["avg1"] = profile.GetResult();
end_message.rad_int_result["avg2"] = profile.GetResult();
end_message.rad_int_result["avg1"] = profile.GetResult(x);
end_message.rad_int_result["avg2"] = profile.GetResult(x);
REQUIRE_NOTHROW(HDF5Metadata::NXmx(start_message, end_message));
}
+1 -1
View File
@@ -100,7 +100,7 @@ TEST_CASE("RadialIntegrationProfile","[RadialIntegration]") {
REQUIRE_THROWS(profile.Add(sum_wr, count));
JFJochProtoBuf::Plot plot;
profile.GetPlot(plot);
profile.GetPlot(plot, x);
REQUIRE(plot.x_size() == mapping.GetBinNumber());
REQUIRE(plot.y_size() == mapping.GetBinNumber());