DiffractionExperiment: Fix error in pedestal G1/G2 count time
This commit is contained in:
@@ -189,7 +189,7 @@ DetectorTiming DetectorSettings::GetTiming() const {
|
||||
return timing;
|
||||
}
|
||||
|
||||
std::chrono::microseconds DetectorSettings::GetFrameTimePedestalG1G1() const {
|
||||
std::chrono::microseconds DetectorSettings::GetFrameTimePedestalG1G2() const {
|
||||
return frame_time_pedestalG1G2;
|
||||
}
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ public:
|
||||
[[nodiscard]] bool IsFixGainG1() const;
|
||||
[[nodiscard]] std::chrono::microseconds GetFrameTime() const;
|
||||
[[nodiscard]] std::optional<std::chrono::microseconds> GetCountTime() const;
|
||||
[[nodiscard]] std::chrono::microseconds GetFrameTimePedestalG1G1() const;
|
||||
[[nodiscard]] std::chrono::microseconds GetFrameTimePedestalG1G2() const;
|
||||
[[nodiscard]] uint32_t GetPedestalMinImageCount() const;
|
||||
[[nodiscard]] std::optional<float> GetEigerThreshold_keV() const;
|
||||
[[nodiscard]] std::optional<int64_t> GetEigerBitDepth() const;
|
||||
|
||||
@@ -223,7 +223,7 @@ std::chrono::microseconds DiffractionExperiment::GetFrameTime() const {
|
||||
switch (GetDetectorMode()) {
|
||||
case DetectorMode::PedestalG1:
|
||||
case DetectorMode::PedestalG2:
|
||||
return detector_settings.GetFrameTimePedestalG1G1();
|
||||
return detector_settings.GetFrameTimePedestalG1G2();
|
||||
default:
|
||||
return detector_settings.GetFrameTime();
|
||||
}
|
||||
@@ -240,7 +240,7 @@ std::chrono::microseconds DiffractionExperiment::GetDetectorPeriod() const {
|
||||
switch (GetDetectorMode()) {
|
||||
case DetectorMode::PedestalG1:
|
||||
case DetectorMode::PedestalG2:
|
||||
return detector_settings.GetFrameTimePedestalG1G1();
|
||||
return detector_settings.GetFrameTimePedestalG1G2();
|
||||
default:
|
||||
return std::chrono::microseconds(MIN_FRAME_TIME_JUNGFRAU_FULL_SPEED_IN_US) * GetStorageCellNumber();
|
||||
}
|
||||
@@ -250,7 +250,7 @@ std::chrono::microseconds DiffractionExperiment::GetImageTime() const {
|
||||
switch (GetDetectorMode()) {
|
||||
case DetectorMode::PedestalG1:
|
||||
case DetectorMode::PedestalG2:
|
||||
return detector_settings.GetFrameTimePedestalG1G1();
|
||||
return detector_settings.GetFrameTimePedestalG1G2();
|
||||
default:
|
||||
return GetFrameTime() * GetSummation();
|
||||
}
|
||||
@@ -289,7 +289,7 @@ std::chrono::microseconds DiffractionExperiment::GetFrameCountTime() const {
|
||||
return dataset.GetImageTime().value() - detector.GetReadOutTime();
|
||||
|
||||
return detector_settings.GetCountTime()
|
||||
.value_or(GetFrameTime() - detector.GetReadOutTime());
|
||||
.value_or(detector_settings.GetFrameTime() - detector.GetReadOutTime());
|
||||
}
|
||||
|
||||
std::chrono::microseconds DiffractionExperiment::GetImageCountTime() const {
|
||||
|
||||
@@ -467,6 +467,18 @@ TEST_CASE("DiffractionExperiment_FrameCountTime_JUNGFRAU","[DiffractionExperimen
|
||||
REQUIRE_NOTHROW(x.FrameTime(10000us, 10us));
|
||||
}
|
||||
|
||||
TEST_CASE("DiffractionExperiment_FrameCountTime_JUNGFRAU_PedestalG1G2","[DiffractionExperiment]") {
|
||||
DetectorSetup setup(DetectorGeometry(1), DetectorType::JUNGFRAU);
|
||||
setup.ReadOutTime(50us);
|
||||
DiffractionExperiment x(setup);
|
||||
REQUIRE_NOTHROW(x.FrameTime(1000us));
|
||||
REQUIRE(x.GetFrameTime() == 1000us);
|
||||
REQUIRE(x.GetFrameCountTime() == 1000us - 50us);
|
||||
x.Mode(DetectorMode::PedestalG1);
|
||||
REQUIRE(x.GetFrameTime().count() == FRAME_TIME_PEDE_G1G2_IN_US);
|
||||
REQUIRE(x.GetFrameCountTime() == 1000us - 50us);
|
||||
}
|
||||
|
||||
TEST_CASE("DiffractionExperiment_InternalPacketGenerator", "[DiffractionExperiment]") {
|
||||
DiffractionExperiment x;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user