Detector Geometry customization
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
using namespace std::literals::chrono_literals;
|
||||
|
||||
TEST_CASE("JFJochReceiverTest_Raw", "[JFJochReceiver]") {
|
||||
DiffractionExperiment x(1, {4});
|
||||
DiffractionExperiment x(DetectorGeometry(4));
|
||||
const uint16_t nthreads = 4;
|
||||
|
||||
x.Mode(DetectorMode::Raw);
|
||||
@@ -42,7 +42,7 @@ TEST_CASE("JFJochReceiverTest_Raw", "[JFJochReceiver]") {
|
||||
TEST_CASE("JFJochReceiverTest_Conversion", "[JFJochReceiver]") {
|
||||
Logger logger("JFJochReceiverTest_Conversion");
|
||||
|
||||
DiffractionExperiment x(1, {2});
|
||||
DiffractionExperiment x(DetectorGeometry(2));
|
||||
const uint16_t nthreads = 4;
|
||||
|
||||
x.Mode(DetectorMode::Conversion);
|
||||
@@ -72,7 +72,7 @@ TEST_CASE("JFJochReceiverTest_Conversion", "[JFJochReceiver]") {
|
||||
TEST_CASE("JFJochReceiverTest_Conversion_Bin2x2", "[JFJochReceiver]") {
|
||||
Logger logger("JFJochReceiverTest_Conversion_Bin2x2");
|
||||
|
||||
DiffractionExperiment x(1, {2});
|
||||
DiffractionExperiment x(DetectorGeometry(2));
|
||||
const uint16_t nthreads = 4;
|
||||
|
||||
x.Mode(DetectorMode::Conversion);
|
||||
@@ -100,9 +100,9 @@ TEST_CASE("JFJochReceiverTest_Conversion_Bin2x2", "[JFJochReceiver]") {
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochReceiverTest_ConversionOnCPU", "[JFJochReceiver]") {
|
||||
Logger logger("JFJochReceiverTest_Conversion");
|
||||
Logger logger("JFJochReceiverTest_ConversionOnCPU");
|
||||
|
||||
DiffractionExperiment x(1, {2});
|
||||
DiffractionExperiment x(DetectorGeometry(2));
|
||||
const uint16_t nthreads = 4;
|
||||
|
||||
x.Mode(DetectorMode::Conversion);
|
||||
@@ -129,10 +129,41 @@ TEST_CASE("JFJochReceiverTest_ConversionOnCPU", "[JFJochReceiver]") {
|
||||
REQUIRE(!output.cancelled());
|
||||
}
|
||||
|
||||
|
||||
TEST_CASE("JFJochReceiverTest_ConversionOnCPU_Bin2x2", "[JFJochReceiver]") {
|
||||
Logger logger("JFJochReceiverTest_ConversionOnCPU_Bin2x2");
|
||||
|
||||
DiffractionExperiment x(DetectorGeometry(2));
|
||||
const uint16_t nthreads = 4;
|
||||
|
||||
x.Mode(DetectorMode::Conversion);
|
||||
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true).ConversionOnCPU(true).Binning2x2(true)
|
||||
.ImagesPerTrigger(32).DataFileCount(16).PhotonEnergy_keV(12.4).Compression(JFJochProtoBuf::BSHUF_ZSTD);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
AcquisitionDevice *test;
|
||||
test = new HLSSimulatedDevice(i, 64);
|
||||
test->EnableLogging(&logger);
|
||||
aq_devices.emplace_back(test);
|
||||
}
|
||||
|
||||
JFJochProtoBuf::ReceiverOutput output;
|
||||
bool ret;
|
||||
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads, false));
|
||||
REQUIRE(ret);
|
||||
REQUIRE(output.efficiency() == 1.0);
|
||||
REQUIRE(output.images_sent() == x.GetImageNum());
|
||||
|
||||
REQUIRE(output.device_statistics(0).timestamp_size() == 32 * 2);
|
||||
REQUIRE(output.device_statistics(0).timestamp(30 * 2) == 0xABCDEF);
|
||||
REQUIRE(!output.cancelled());
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochReceiverTest_Conversion_StorageCell", "[JFJochReceiver]") {
|
||||
Logger logger("JFJochReceiverTest_Conversion_StorageCell");
|
||||
|
||||
DiffractionExperiment x(1, {2});
|
||||
DiffractionExperiment x(DetectorGeometry(2));
|
||||
const uint16_t nthreads = 4;
|
||||
|
||||
x.Mode(DetectorMode::Conversion);
|
||||
@@ -182,7 +213,7 @@ TEST_CASE("JFJochReceiverTest_PedestalG1", "[JFJochReceiver]") {
|
||||
i = 16384 | number;
|
||||
}
|
||||
|
||||
DiffractionExperiment x(1, {1});
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
x.Mode(DetectorMode::PedestalG1).PedestalG0Frames(0)
|
||||
.PedestalG1Frames(nframes).NumTriggers(1).UseInternalPacketGenerator(false)
|
||||
.ImagesPerTrigger(0).PhotonEnergy_keV(12.4);
|
||||
@@ -242,7 +273,7 @@ TEST_CASE("JFJochReceiverTest_PedestalG2_storage_cell", "[JFJochReceiver]") {
|
||||
if (number > 16300) number = 16300;
|
||||
i = 32768 | 16384 | number;
|
||||
}
|
||||
DiffractionExperiment x(1, {1});
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
x.Mode(DetectorMode::PedestalG2).PedestalG0Frames(0)
|
||||
.PedestalG2Frames(nframes).NumTriggers(1).UseInternalPacketGenerator(false)
|
||||
.ImagesPerTrigger(0).PhotonEnergy_keV(12.4).StorageCells(16);
|
||||
@@ -285,7 +316,7 @@ TEST_CASE("JFJochReceiverTest_PedestalG2_storage_cell", "[JFJochReceiver]") {
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochReceiverTest_PedestalG0", "[JFJochReceiver]") {
|
||||
DiffractionExperiment x(1, {1});
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
const uint16_t nthreads = 4;
|
||||
size_t nframes = 500;
|
||||
|
||||
@@ -338,7 +369,7 @@ TEST_CASE("JFJochReceiverTest_PedestalG0", "[JFJochReceiver]") {
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochReceiverTest_PedestalG0_StorageCell", "[JFJochReceiver]") {
|
||||
DiffractionExperiment x(1, {1});
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
const uint16_t nthreads = 4;
|
||||
size_t nframes = 140;
|
||||
|
||||
@@ -390,7 +421,7 @@ TEST_CASE("JFJochReceiverTest_PedestalG0_StorageCell", "[JFJochReceiver]") {
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochReceiverTest_PedestalG1_NoFrames", "[JFJochReceiver]") {
|
||||
DiffractionExperiment x(1, {1});
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
const uint16_t nthreads = 4;
|
||||
size_t nframes = 256;
|
||||
|
||||
@@ -423,7 +454,7 @@ TEST_CASE("JFJochReceiverTest_PedestalG1_NoFrames", "[JFJochReceiver]") {
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochReceiverTest_PacketLost_Raw", "[JFJochReceiver]") {
|
||||
DiffractionExperiment x(1, {2});
|
||||
DiffractionExperiment x(DetectorGeometry(2));
|
||||
const uint16_t nthreads = 4;
|
||||
|
||||
std::vector<uint16_t> frame_in(RAW_MODULE_SIZE);
|
||||
|
||||
Reference in New Issue
Block a user