ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Material mapping

Detailed Description

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.

  1. AssignmentActs::IAssignmentFinder decides, for a given recorded material track, which surfaces (and volumes) the individual material interactions along that track should be attributed to.
  2. AccumulationActs::ISurfaceMaterialAccumulator collects the assigned interactions per surface, bins them, and averages them into the final Acts::ISurfaceMaterial. The default implementation is Acts::BinnedSurfaceMaterialAccumulator.

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:

  • Acts::MaterialInteractionAssignment implements the assignment logic that turns candidates into final assignments, including vetoes and re-assignments.
  • Acts::MaterialValidator re-records material from an already mapped geometry so that the mapped result can be compared against the Geant4 input.
  • Material mapping documents the end-to-end Examples chain (designation, recording, mapping, validation), the scripts that drive it, and how to produce a map for your own detector.

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...