11 #include <svd/simulation/SVDSimulationTools.h>
12 #include <svd/reconstruction/NNWaveFitter.h>
13 #include <svd/reconstruction/NNWaveFitTool.h>
14 #include <gtest/gtest.h>
37 TEST(NNTimeFitter, DISABLED_CompareNetworkCoefficient)
41 EXPECT_TRUE(fitter.checkCoefficients(
"svd/data/classifier.txt", 1.0e-6));
55 TEST(NNTimeFitter, DISABLED_CompareFits)
57 const size_t max_lines = 100;
61 auto fitTool = fitter.getFitTool();
62 size_t nProbs = fitTool.getBinCenters().size();
64 ifstream infile(
"svd/data/test_sample.csv");
68 getline(infile, line);
70 for (
size_t i_line = 0; i_line < max_lines; i_line++) {
72 getline(infile, line);
73 if (line.size() < 10)
break;
74 istringstream sline(line);
79 getline(sline, cell,
',');
80 getline(sline, cell,
',');
83 getline(sline, cell,
',');
84 [[maybe_unused]]
double true_amp = stod(cell);
85 getline(sline, cell,
',');
86 [[maybe_unused]]
double true_t0 = stod(cell);
87 getline(sline, cell,
',');
88 [[maybe_unused]]
double width = stod(cell);
89 getline(sline, cell,
',');
90 [[maybe_unused]]
double noise = stod(cell);
94 for (
size_t iSample = 0; iSample <
nAPVSamples; ++iSample) {
95 getline(sline, cell,
',');
96 normedSamples[iSample] = stod(cell);
100 getline(sline, cell,
',');
101 getline(sline, cell,
',');
102 getline(sline, cell,
',');
106 for (
size_t iSample = 0; iSample < nProbs; ++iSample) {
107 getline(sline, cell,
',');
108 ProbsPy[iSample] = stod(cell);
112 getline(sline, cell,
',');
113 double fitPy_amp = stod(cell);
114 getline(sline, cell,
',');
115 double fitPy_ampSigma = stod(cell);
116 getline(sline, cell,
',');
117 [[maybe_unused]]
double fitPy_chi2 = stod(cell);
118 getline(sline, cell,
',');
119 double fitPy_t0 = stod(cell);
120 getline(sline, cell,
',');
121 double fitPy_t0Sigma = stod(cell);
124 const shared_ptr<nnFitterBinData> ProbsCpp = fitter.getFit(normedSamples, width);
125 for (
size_t iBin = 0; iBin < nProbs; ++iBin)
126 EXPECT_NEAR((*ProbsCpp)[iBin], ProbsPy[iBin], 5.0e-3);
128 double t0_cpp, t0_err_cpp;
129 tie(t0_cpp, t0_err_cpp) = fitTool.getTimeShift(*ProbsCpp);
130 EXPECT_NEAR(t0_cpp, fitPy_t0, 5);
131 EXPECT_NEAR(t0_err_cpp, fitPy_t0Sigma, 2);
133 double amp_cpp, amp_err_cpp, chi2_cpp;
134 tie(amp_cpp, amp_err_cpp, chi2_cpp) = fitTool.getAmplitudeChi2(normedSamples, t0_cpp, width);
135 EXPECT_NEAR(amp_cpp, fitPy_amp, 1.0);
136 EXPECT_NEAR(amp_err_cpp, fitPy_ampSigma, 0.1);