22 namespace ActsFatras {
30 template <
typename generator_t>
32 std::function<Acts::Result<std::pair<double, double>>(
double,
42 template <
typename generator_t,
size_t kSize>
50 std::array<Acts::BoundIndices, kSize>
indices{};
51 std::array<SingleParameterSmearFunction<generator_t>, kSize>
smearFunctions{};
53 static constexpr
size_t size() {
return kSize; }
81 if (!boundParamsRes.ok()) {
82 return boundParamsRes.error();
85 const auto& boundParams = *boundParamsRes;
89 for (
int i = 0; i < static_cast<int>(kSize); ++
i) {
92 return Result::failure(res.error());
94 auto [
value, stddev] = res.value();
96 cov(
i,
i) = stddev * stddev;
99 return Result::success(std::make_pair(par, cov));
113 template <
typename generator_t,
size_t kSize>
121 std::array<Acts::FreeIndices, kSize>
indices{};
124 static constexpr
size_t size() {
return kSize; }
144 for (
size_t i = 0;
i < kSize; ++
i) {
147 return Result::failure(res.error());
149 auto [
value, stddev] = res.value();
151 cov(
i,
i) = stddev * stddev;
154 return Result::success(std::make_pair(par, cov));