|
ACTS
Experiment-independent tracking
|
Projection procedure to derive mapped material properties.
Material mapping projects the material of a detailed simulation geometry (as recorded by Geant4, see Material mapping) onto the surfaces of a tracking geometry, so that track reconstruction can account for material effects without the detailed geometry being present.
The procedure is split into two independent steps, each behind its own interface, and tied together by Acts::MaterialMapper.
Because the two steps only communicate through Acts::IAssignmentFinder::SurfaceAssignment, the way candidate surfaces are found is a free choice, which is what the two available assigners differ in.
Intersection-based assignment (default). Acts::IntersectionMaterialAssigner is preconditioned with a flat list of candidate surfaces and volumes, and for each material track it simply intersects the track's ray with every candidate. It does not use the Acts::Navigator or a propagator at all, and correspondingly does not depend on the geometry being navigable: the only thing it needs is a list of material-carrying surfaces. This makes it agnostic to how the tracking geometry was built — the same code path serves both the Gen1 and the Gen3 (blueprint) construction, since both produce an Acts::TrackingGeometry from which the surface list can be extracted by a plain surface visitor. It also removes navigation as a source of error: material that a navigator would have missed is still assigned. The cost is that every candidate surface is tested for every track, so the runtime scales with the number of candidates.
What does differ between the two generations is how surfaces are designated as material-carrying in the first place. Gen1 annotates an already-built geometry through an Acts::IMaterialDecorator, typically driven by an edited JSON geometry map. Gen3 designates during construction, via Acts::MaterialDesignatorBlueprintNode in the blueprint tree, which attaches Acts::ProtoGridSurfaceMaterial to selected volume faces; Acts::Blueprint::construct does not apply a material decorator at all. Both end up as proto material on ordinary surfaces, which is why the mapping step that follows is identical. See Material mapping for the practical difference.
Propagation-based assignment. Acts::PropagatorMaterialAssigner runs a straight-line propagation through the geometry and collects the surfaces the navigator actually encounters. This is cheaper for large geometries, but it inherits whatever the navigation configuration does or does not find, and it requires a navigable geometry.
The intersection-based assigner is the default in the Examples workflow. The propagation-based one remains available and is useful as a cross-check.
Related components:
Namespaces | |
| namespace | Acts::MaterialInteractionAssignment |
| Assignment of recorded material interactions to assignment candidates. | |
Classes | |
| class | Acts::AccumulatedMaterialSlab |
| Accumulate material properties from multiple hits/track and multiple tracks. More... | |
| class | Acts::AccumulatedSurfaceMaterial |
| This class is used by the BinnedSurfaceMaterialAccumulator in order to accumulate/collect material information during the mapping process. More... | |
| class | Acts::AccumulatedVolumeMaterial |
| Accumulate and average volume-based material properties. More... | |
| class | Acts::BinnedSurfaceMaterialAccumulator |
| The binned surface material accumulator. More... | |
| class | Acts::IAssignmentFinder |
| Interface for the material mapping that seeks the possible assignment candidates for the material interactiosn. More... | |
| class | Acts::IntersectionMaterialAssigner |
| A purely intersection based material assigner on a trial and error basis. More... | |
| class | Acts::ISurfaceMaterialAccumulator |
| Interface for the material mapping, this is the accumulation step. More... | |
| class | Acts::MaterialMapper |
| Class that implements the material mapping procedure. More... | |
| class | Acts::MaterialValidator |
| The material validator is a tool that allows to record the material seen by a ray through a set of material surfaces. More... | |
| class | Acts::PropagatorMaterialAssigner< propagator_t > |
| A Propagator based material assigner that uses the navigation and transport of the propagator to assign the material to the surface or the volume. More... | |