Note
This was originally written for the materials plugin that has been merged into the material module
The material module allow to map material from a detailed full detector geometry onto the simplified Acts geometry. The material is mapped onto layers of the tracking geometry which are marked to carry support material. The marking is done during the geometry building process. The material can be mapped onto either, the inner, the outer boundary surface or the central (representing) Acts::Surface
of the Acts::Layer
. The Acts::Material
is described on a two dimensional grid for each layer (Acts::BinnedSurfaceMaterial
). The user defines the granularity of the grid during the geometry building process.
Note
The /plugins/dd4hep
offers the possibility to mark layers which should carry material and to determine the grid granularity, using the class Acts::ActsExtension
.
Following the Acts philosophy the material mapping is agnostic to any file format and software used to create or store the material maps. The material should be stored in instances of the class Acts::MaterialTrack
. This material track record represents a track starting from a certain position, in a certain direction, containing all material along this track. The material along the material track record is stored as a container of Acts::MaterialStep
instances. Each material step contains the material and its thickness at a certain position.
The material mapping process can be split into two subprocesses:
- Material assignment
- Material averaging
During the material assignment process the decision onto which layer each material step will be assigned is done. To assign a Acts::MaterialTrack
the function Acts::MaterialMapping::mapMaterial()
should be used. This function extrapolates through the tracking detector, with the start position and direction given by the material track record and collects all layers marked to carry material. Then it loops through all material steps of the material track record and assigns the material of each step to the closest layer:
During the material mapping the user can decide to average the material whenever they prefer by using the function Acts::MaterialMapping::averageLayerMaterial()
. In the end when all material track records have been mapped one should use the function Acts::MaterialMapping::finalizeLayerMaterial()
in order to finalize the process.
The full material mapping process should be done in the framework of the user.
Possible workflow:
- Create material map(s) of full detector geometry using
Acts::MaterialTrack
. - Read in material map(s) and go through all collected material track records. Use
Acts::MaterialMapping::mapMaterial()
for each material track record. - Use
Acts::MaterialMapping::averageLayerMaterial()
once per run. - In the end of the process use
Acts::MaterialMapping::finalizeLayerMaterial()
which assigns the final material to the layers.