22 std::unique_ptr<ISurfaceGridLookup> gridLookup,
23 std::vector<std::shared_ptr<const Surface>> surfaces,
25 : p_gridLookup(std::
move(gridLookup)),
26 m_surfaces(std::
move(surfaces)),
34 m_surfacesRawPointers.push_back(m_surfaces.at(0).get());
38 std::ostream& sl)
const {
39 sl << std::fixed << std::setprecision(4);
40 sl <<
"SurfaceArray:" << std::endl;
41 sl <<
" - no surfaces: " << m_surfaces.size() << std::endl;
42 sl <<
" - grid dim: " << p_gridLookup->dimensions() << std::endl;
44 auto axes = p_gridLookup->getAxes();
46 for (
size_t j = 0;
j < axes.size(); ++
j) {
48 sl <<
" - axis " << (
j + 1) << std::endl;
49 sl <<
" - boundary type: ";
50 if (bdt == detail::AxisBoundaryType::Open) {
53 if (bdt == detail::AxisBoundaryType::Bound) {
56 if (bdt == detail::AxisBoundaryType::Closed) {
61 << (axes.at(
j)->isEquidistant() ?
"equidistant" :
"variable")
63 sl <<
" - n bins: " << axes.at(
j)->getNBins() << std::endl;
64 sl <<
" - bin edges: [ ";
65 auto binEdges = axes.at(
j)->getBinEdges();
66 for (
size_t i = 0;
i < binEdges.size(); ++
i) {
70 auto binEdge = binEdges.at(
i);
72 sl << ((std::abs(binEdge) >= 5
e-4) ? binEdge : 0.0);
74 sl <<
" ]" << std::endl;