JFConversion: Clean-up
This commit is contained in:
+1
-218
@@ -2,9 +2,8 @@
|
||||
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#include "../tests/FPGAUnitTest.h"
|
||||
#include "../jungfrau/JFConversionFloatingPoint.h"
|
||||
#include "../jungfrau/JFConversionFixedPoint.h"
|
||||
#include "../tests/FPGAUnitTest.h"
|
||||
|
||||
void SetupPedestal( JFModulePedestal &pedestal_g0, JFModulePedestal &pedestal_g1, JFModulePedestal &pedestal_g2) {
|
||||
auto ptr_g0 = pedestal_g0.GetPedestal();
|
||||
@@ -51,78 +50,6 @@ TEST_CASE("JFConversionFloatingPoint_G0","[JFConversion]") {
|
||||
REQUIRE(max_err <= 1.0);
|
||||
}
|
||||
|
||||
TEST_CASE("JFConversionFixedPoint_G0","[JFConversion]") {
|
||||
JFConversionFixedPoint conv;
|
||||
JFConversionFloatingPoint conv_fp;
|
||||
|
||||
JFModulePedestal pedestal_g0;
|
||||
JFModulePedestal pedestal_g1;
|
||||
JFModulePedestal pedestal_g2;
|
||||
|
||||
SetupPedestal(pedestal_g0, pedestal_g1, pedestal_g2);
|
||||
|
||||
JFModuleGainCalibration gain;
|
||||
|
||||
std::vector<double> energy{4.0, 6.0, 12.4, 25.0};
|
||||
for (auto &e: energy) {
|
||||
conv.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
conv_fp.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
|
||||
std::vector<uint16_t> input(RAW_MODULE_SIZE);
|
||||
std::vector<float> output_fp(RAW_MODULE_SIZE);
|
||||
std::vector<int16_t> output_16bit(RAW_MODULE_SIZE);
|
||||
|
||||
for (int i = 0; i < RAW_MODULE_SIZE; i++)
|
||||
input[i] = i % 16384;
|
||||
|
||||
conv.ConvertModule(output_16bit.data(), input.data());
|
||||
conv_fp.ConvertFP(output_fp.data(), input.data());
|
||||
|
||||
auto err = Compare(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
auto max_err = MaxErrorOnConversion(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
|
||||
std::cout << "Error on conversion " << err << " max error " << max_err << std::endl;
|
||||
REQUIRE(err < 0.5);
|
||||
REQUIRE(max_err <= 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("JFConversionFixedPoint_G0_TestFile","[JFConversion]") {
|
||||
JFConversionFixedPoint conv;
|
||||
JFConversionFloatingPoint conv_fp;
|
||||
|
||||
JFModulePedestal pedestal_g0;
|
||||
JFModulePedestal pedestal_g1;
|
||||
JFModulePedestal pedestal_g2;
|
||||
|
||||
SetupPedestal(pedestal_g0, pedestal_g1, pedestal_g2);
|
||||
|
||||
JFModuleGainCalibration gain = GainCalibrationFromTestFile();
|
||||
|
||||
std::vector<double> energy{4.0, 6.0, 12.4, 25.0};
|
||||
for (auto &e: energy) {
|
||||
conv.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
conv_fp.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
|
||||
std::vector<uint16_t> input(RAW_MODULE_SIZE);
|
||||
std::vector<float> output_fp(RAW_MODULE_SIZE);
|
||||
std::vector<int16_t> output_16bit(RAW_MODULE_SIZE);
|
||||
|
||||
for (int i = 0; i < RAW_MODULE_SIZE; i++)
|
||||
input[i] = i % 16384;
|
||||
|
||||
conv.ConvertModule(output_16bit.data(), input.data());
|
||||
conv_fp.ConvertFP(output_fp.data(), input.data());
|
||||
|
||||
auto err = Compare(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
auto max_err = MaxErrorOnConversion(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
|
||||
std::cout << "Error on conversion " << err << " max error " << max_err << std::endl;
|
||||
REQUIRE(err < 0.5);
|
||||
REQUIRE(max_err <= 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("JFConversionFloatingPoint_G1","[JFConversion]") {
|
||||
JFConversionFloatingPoint conv;
|
||||
|
||||
@@ -154,42 +81,6 @@ TEST_CASE("JFConversionFloatingPoint_G1","[JFConversion]") {
|
||||
REQUIRE(max_err <= 1.0);
|
||||
}
|
||||
|
||||
TEST_CASE("JFConversionFixedPoint_G1","[JFConversion]") {
|
||||
JFConversionFixedPoint conv;
|
||||
JFConversionFloatingPoint conv_fp;
|
||||
|
||||
JFModulePedestal pedestal_g0;
|
||||
JFModulePedestal pedestal_g1;
|
||||
JFModulePedestal pedestal_g2;
|
||||
|
||||
SetupPedestal(pedestal_g0, pedestal_g1, pedestal_g2);
|
||||
|
||||
JFModuleGainCalibration gain;
|
||||
|
||||
std::vector<double> energy{4.0, 6.0, 12.4, 25.0};
|
||||
for (auto &e: energy) {
|
||||
conv.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
conv_fp.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
|
||||
std::vector<uint16_t> input(RAW_MODULE_SIZE);
|
||||
std::vector<float> output_fp(RAW_MODULE_SIZE);
|
||||
std::vector<int16_t> output_16bit(RAW_MODULE_SIZE);
|
||||
|
||||
for (int i = 0; i < RAW_MODULE_SIZE; i++)
|
||||
input[i] = (i % 16384) | 0x4000;
|
||||
|
||||
conv.ConvertModule(output_16bit.data(), input.data());
|
||||
conv_fp.ConvertFP(output_fp.data(), input.data());
|
||||
|
||||
auto err = Compare(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
auto max_err = MaxErrorOnConversion(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
|
||||
std::cout << "Error on conversion " << err << " max error " << max_err << std::endl;
|
||||
REQUIRE(err < 0.5);
|
||||
REQUIRE(max_err <= 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("JFConversionFloatingPoint_G2","[JFConversion]") {
|
||||
JFConversionFloatingPoint conv;
|
||||
|
||||
@@ -220,111 +111,3 @@ TEST_CASE("JFConversionFloatingPoint_G2","[JFConversion]") {
|
||||
REQUIRE(err < 0.5);
|
||||
REQUIRE(max_err <= 1.0);
|
||||
}
|
||||
|
||||
TEST_CASE("JFConversionFixedPoint_G2","[JFConversion]") {
|
||||
JFConversionFixedPoint conv;
|
||||
JFConversionFloatingPoint conv_fp;
|
||||
|
||||
JFModulePedestal pedestal_g0;
|
||||
JFModulePedestal pedestal_g1;
|
||||
JFModulePedestal pedestal_g2;
|
||||
|
||||
SetupPedestal(pedestal_g0, pedestal_g1, pedestal_g2);
|
||||
|
||||
JFModuleGainCalibration gain;
|
||||
|
||||
std::vector<double> energy{4.0, 6.0, 12.4, 25.0};
|
||||
for (auto &e: energy) {
|
||||
conv.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
conv_fp.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
|
||||
std::vector<uint16_t> input(RAW_MODULE_SIZE);
|
||||
std::vector<float> output_fp(RAW_MODULE_SIZE);
|
||||
std::vector<int16_t> output_16bit(RAW_MODULE_SIZE);
|
||||
|
||||
for (int i = 0; i < RAW_MODULE_SIZE; i++)
|
||||
input[i] = (i % 16384) | 0xC000;
|
||||
|
||||
conv.ConvertModule(output_16bit.data(), input.data());
|
||||
conv_fp.ConvertFP(output_fp.data(), input.data());
|
||||
|
||||
auto err = Compare(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
auto max_err = MaxErrorOnConversion(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
|
||||
std::cout << "Error on conversion " << err << " max error " << max_err << std::endl;
|
||||
REQUIRE(err < 0.5);
|
||||
REQUIRE(max_err <= 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("JFConversionFixedPoint_G1_TestFile","[JFConversion]") {
|
||||
JFConversionFixedPoint conv;
|
||||
JFConversionFloatingPoint conv_fp;
|
||||
|
||||
JFModulePedestal pedestal_g0;
|
||||
JFModulePedestal pedestal_g1;
|
||||
JFModulePedestal pedestal_g2;
|
||||
|
||||
SetupPedestal(pedestal_g0, pedestal_g1, pedestal_g2);
|
||||
|
||||
JFModuleGainCalibration gain = GainCalibrationFromTestFile();
|
||||
|
||||
std::vector<double> energy{4.0, 6.0, 12.4, 25.0};
|
||||
for (auto &e: energy) {
|
||||
conv.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
conv_fp.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
|
||||
std::vector<uint16_t> input(RAW_MODULE_SIZE);
|
||||
std::vector<float> output_fp(RAW_MODULE_SIZE);
|
||||
std::vector<int16_t> output_16bit(RAW_MODULE_SIZE);
|
||||
|
||||
for (int i = 0; i < RAW_MODULE_SIZE; i++)
|
||||
input[i] = (i % 16384) | 0x4000;
|
||||
|
||||
conv.ConvertModule(output_16bit.data(), input.data());
|
||||
conv_fp.ConvertFP(output_fp.data(), input.data());
|
||||
|
||||
auto err = Compare(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
auto max_err = MaxErrorOnConversion(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
|
||||
std::cout << "Error on conversion " << err << " max error " << max_err << std::endl;
|
||||
REQUIRE(err < 0.5);
|
||||
REQUIRE(max_err <= 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("JFConversionFixedPoint_G2_TestFile","[JFConversion]") {
|
||||
JFConversionFixedPoint conv;
|
||||
JFConversionFloatingPoint conv_fp;
|
||||
|
||||
JFModulePedestal pedestal_g0;
|
||||
JFModulePedestal pedestal_g1;
|
||||
JFModulePedestal pedestal_g2;
|
||||
|
||||
SetupPedestal(pedestal_g0, pedestal_g1, pedestal_g2);
|
||||
|
||||
JFModuleGainCalibration gain = GainCalibrationFromTestFile();
|
||||
|
||||
std::vector<double> energy{4.0, 6.0, 12.4, 25.0};
|
||||
for (auto &e: energy) {
|
||||
conv.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
conv_fp.Setup(gain, pedestal_g0, pedestal_g1, pedestal_g2, e);
|
||||
|
||||
std::vector<uint16_t> input(RAW_MODULE_SIZE);
|
||||
std::vector<float> output_fp(RAW_MODULE_SIZE);
|
||||
std::vector<int16_t> output_16bit(RAW_MODULE_SIZE);
|
||||
|
||||
for (int i = 0; i < RAW_MODULE_SIZE; i++)
|
||||
input[i] = (i % 16384) | 0xC000;
|
||||
|
||||
conv.ConvertModule(output_16bit.data(), input.data());
|
||||
conv_fp.ConvertFP(output_fp.data(), input.data());
|
||||
|
||||
auto err = Compare(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
auto max_err = MaxErrorOnConversion(output_16bit.data(), output_fp, RAW_MODULE_SIZE);
|
||||
|
||||
std::cout << "Error on conversion " << err << " max error " << max_err << std::endl;
|
||||
REQUIRE(err < 0.5);
|
||||
REQUIRE(max_err <= 1.0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user