Skip to content

Commit b59b1ec

Browse files
committed
fix faulty gaussian random smearing test
1 parent 71d14c2 commit b59b1ec

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

Tests/UnitTests/Examples/Io/Json/JsonDigitizationConfigTests.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "ActsFatras/Digitization/UncorrelatedHitSmearer.hpp"
2222
#include "ActsTests/CommonHelpers/FloatComparisons.hpp"
2323

24+
#include <cmath>
2425
#include <fstream>
2526
#include <string>
2627
#include <vector>
@@ -119,6 +120,10 @@ BOOST_AUTO_TEST_CASE(GaussianSmearing) {
119120
for (auto& smearing : el.smearingDigiConfig.params) {
120121
// check if the forcePositiveValue parameter is successfully parsed
121122
BOOST_CHECK(smearing.forcePositiveValues);
123+
const auto* gauss =
124+
smearing.smearFunction.target<const Digitization::Gauss>();
125+
BOOST_REQUIRE(gauss != nullptr);
126+
CHECK_CLOSE_REL(gauss->sigma, 0.05, 1e-12);
122127
std::fill(std::begin(s.indices), std::end(s.indices),
123128
static_cast<BoundIndices>(smearing.index));
124129
std::fill(std::begin(s.smearFunctions), std::end(s.smearFunctions),
@@ -133,14 +138,12 @@ BOOST_AUTO_TEST_CASE(GaussianSmearing) {
133138
BOOST_CHECK(ret.ok());
134139
auto [par, cov] = ret.value();
135140
for (std::size_t i = 0; i < s.indices.size(); i++) {
136-
BOOST_TEST_INFO("Comparing smeared measurement "
141+
BOOST_TEST_INFO("Checking smeared measurement "
137142
<< i << " originating from bound parameter "
138143
<< s.indices[i]);
139-
double ref = f.boundParams[s.indices[i]];
140-
if (s.forcePositive[i]) {
141-
ref = std::abs(ref);
142-
}
143-
CHECK_CLOSE_REL(par[i], ref, 0.15);
144+
BOOST_CHECK(std::isfinite(par[i]));
145+
BOOST_CHECK_GE(par[i], 0.);
146+
CHECK_CLOSE_REL(cov(i, i), 0.05 * 0.05, 1e-12);
144147
}
145148
}
146149

0 commit comments

Comments
 (0)