31 static constexpr
size_t DIM_POS = Grid_t::DIM;
39 static constexpr
unsigned int N = 1 <<
DIM_POS;
55 std::array<double, DIM_POS> lowerLeft,
56 std::array<double, DIM_POS> upperRight,
57 std::array<Material::ParametersVector, N> materialValues)
150 size_t bin =
m_grid.globalBinFromPosition(gridPosition);
151 const auto& indices =
m_grid.localBinsFromPosition(bin);
152 const auto& lowerLeft =
m_grid.lowerLeftBinEdge(indices);
153 const auto& upperRight =
m_grid.upperRightBinEdge(indices);
156 constexpr
size_t nCorners = 1 <<
DIM_POS;
157 std::array<Material::ParametersVector, nCorners> neighbors;
158 const auto& cornerIndices =
m_grid.closestPointsIndices(gridPosition);
161 for (
size_t index : cornerIndices) {
173 auto nBinsArray =
m_grid.numLocalBins();
174 return std::vector<size_t>(nBinsArray.begin(), nBinsArray.end());
181 auto minArray =
m_grid.minPosition();
182 return std::vector<double>(minArray.begin(), minArray.end());
189 auto maxArray =
m_grid.maxPosition();
190 return std::vector<double>(maxArray.begin(), maxArray.end());
236 template <
typename Mapper_t>
242 std::optional<typename Mapper_t::MaterialCell>
matCell;
274 return m_mapper.getMaterial(position);
289 return (*cache.
matCell).getMaterial(position);
303 return m_mapper.getMaterial(position);
318 Cache& cache)
const {
321 return m_mapper.getMaterial(position);
343 std::ostream&
toStream(std::ostream& sl)
const override {
344 sl <<
"Acts::InterpolatedMaterialMap : " << std::endl;
347 sl <<
" - Parse full update material : " << std::endl;
361 return m_mapper.getMaterialCell(position);