File MaterialMapUtils.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
Note
this is foreseen for the ‘Geometry’ module
Functions
-
MaterialMapper<detail::Grid<Material::ParametersVector, detail::EquidistantAxis, detail::EquidistantAxis>> materialMapperRZ(const std::function<size_t(std::array<size_t, 2> binsRZ, std::array<size_t, 2> nBinsRZ)> &materialVectorToGridMapper, std::vector<double> rPos, std::vector<double> zPos, const std::vector<Acts::Material> &material, double lengthUnit = UnitConstants::mm)¶
Method to setup the MaterialMapper.
e.g.: we have small grid with the values: r={2,3}, z ={4,5}, the corresponding indices are i (belonging to r) and j (belonging to z), the globalIndex is M (belonging to the values of the Material) and the map is:
r
i
z
j
M
2
0
4
0
0
2
0
5
1
1
3
1
4
0
2
3
1
5
1
3
[](std::array<size_t, 2> binsRZ, std::array<size_t, 2> nBinsRZ) { return (binsRZ.at(0) * nBinsRZ.at(1) + binsRZ.at(1)); }
Note
The values do not need to be sorted or unique (this will be done inside the function)
Note
The values do not need to be sorted or unique (this will be done inside the function)
Note
The function localToGlobalBin determines how the material was stored in the vector in respect to the grid values
- Parameters
materialVectorToGridMapper – [in] Function mapping the vector of material to the map of material values
rPos – [in] Values of the grid points in r
zPos – [in] Values of the grid points in z
material – [in] The material classification values in r and z for all given grid points stored in a vector
lengthUnit – [in] The unit of the grid points
-
MaterialMapper<detail::Grid<Material::ParametersVector, detail::EquidistantAxis, detail::EquidistantAxis, detail::EquidistantAxis>> materialMapperXYZ(const std::function<size_t(std::array<size_t, 3> binsXYZ, std::array<size_t, 3> nBinsXYZ)> &materialVectorToGridMapper, std::vector<double> xPos, std::vector<double> yPos, std::vector<double> zPos, const std::vector<Material> &material, double lengthUnit = UnitConstants::mm)¶
Method to setup the MaterialMapper.
e.g.: we have small grid with the values: x={2,3}, y={3,4}, z ={4,5}, the corresponding indices are i (belonging to x), j (belonging to y) and k (belonging to z), the globalIndex is M (belonging to the values of the Material) and the map is:
x
i
y
j
z
k
M
2
0
3
0
4
0
0
2
0
3
0
5
1
1
2
0
4
1
4
0
2
2
0
4
1
5
1
3
3
1
3
0
4
0
4
3
1
3
0
5
1
5
3
1
4
1
4
0
6
3
1
4
1
5
1
7
[](std::array<size_t, 3> binsXYZ, std::array<size_t, 3> nBinsXYZ) { return (binsXYZ.at(0) * (nBinsXYZ.at(1) * nBinsXYZ.at(2)) + binsXYZ.at(1) * nBinsXYZ.at(2) + binsXYZ.at(2)); }
Note
The values do not need to be sorted or unique (this will be done inside the function)
Note
The values do not need to be sorted or unique (this will be done inside the function)
Note
The values do not need to be sorted or unique (this will be done inside the function)
Note
The function localToGlobalBin determines how the material was stored in the vector in respect to the grid values
- Parameters
materialVectorToGridMapper – [in] Function mapping the vector of material to the map of material values
xPos – [in] Values of the grid points in x
yPos – [in] Values of the grid points in y
zPos – [in] Values of the grid points in z
material – [in] The material classification values in x, y and z for all given grid points stored in a vector
lengthUnit – [in] The unit of the grid points
-
MaterialMapper<detail::Grid<Material::ParametersVector, detail::EquidistantAxis, detail::EquidistantAxis>> materialMapperRZ(const std::function<size_t(std::array<size_t, 2> binsRZ, std::array<size_t, 2> nBinsRZ)> &materialVectorToGridMapper, std::vector<double> rPos, std::vector<double> zPos, const std::vector<Acts::Material> &material, double lengthUnit = UnitConstants::mm)¶