ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::SurfaceMaterialMapper Class Reference

SurfaceMaterialMapper. More...

#include <Acts/Material/SurfaceMaterialMapper.hpp>

Classes

struct  Config
 Nested Configuration struct for the material mapper. More...
struct  State
 Nested State struct which is used for the mapping prococess. More...

Public Types

using StraightLinePropagator = Propagator<StraightLineStepper, Navigator>
 Type alias for straight line propagator used in material mapping.

Public Member Functions

 SurfaceMaterialMapper ()=delete
 Delete the Default constructor.
 SurfaceMaterialMapper (const Config &cfg, StraightLinePropagator propagator, std::unique_ptr< const Logger > slogger=getDefaultLogger("SurfaceMaterialMapper", Logging::INFO))
 Constructor with config object.
State createState (const GeometryContext &gctx, const MagneticFieldContext &mctx, const TrackingGeometry &tGeometry) const
 helper method that creates the cache for the mapping
void finalizeMaps (State &mState) const
 Method to finalize the maps.
void mapInteraction (State &mState, RecordedMaterialTrack &mTrack) const
 Loop through all the material interactions and add them to the associated surface.
void mapMaterialTrack (State &mState, RecordedMaterialTrack &mTrack) const
 Process/map a single track.
void mapSurfaceInteraction (State &mState, std::vector< MaterialInteraction > &rMaterial) const
 Loop through all the material interactions and add them to the associated surface.

Detailed Description

SurfaceMaterialMapper.

This is the main feature tool to map material information from a 3D geometry onto the TrackingGeometry with its surface material description.

The process runs as such:

1) TrackingGeometry is parsed and for each Surface with ProtoSurfaceMaterial a local store is initialized the identification is done hereby through the Surface::GeometryIdentifier

2) A Cache is generated that is used to keep the filling thread local, the filling is protected with std::mutex

3) A number of N material tracks is read in, each track has : origin, direction, material steps < position, step length, x0, l0, a, z, rho >

for each track: surfaces along the origin/direction path are collected the closest material steps are assigned

4) Each 'hit' bin per event is counted and averaged at the end of the run

Member Typedef Documentation

◆ StraightLinePropagator

Type alias for straight line propagator used in material mapping.

Constructor & Destructor Documentation

◆ SurfaceMaterialMapper() [1/2]

Acts::SurfaceMaterialMapper::SurfaceMaterialMapper ( )
delete

Delete the Default constructor.

◆ SurfaceMaterialMapper() [2/2]

Acts::SurfaceMaterialMapper::SurfaceMaterialMapper ( const Config & cfg,
StraightLinePropagator propagator,
std::unique_ptr< const Logger > slogger = getDefaultLogger("SurfaceMaterialMapper", Logging::INFO) )

Constructor with config object.

Parameters
cfgConfiguration struct
propagatorThe straight line propagator
sloggerThe logger

Member Function Documentation

◆ createState()

State Acts::SurfaceMaterialMapper::createState ( const GeometryContext & gctx,
const MagneticFieldContext & mctx,
const TrackingGeometry & tGeometry ) const

helper method that creates the cache for the mapping

Parameters
[in]gctxThe geometry context to use
[in]mctxThe magnetic field context to use
[in]tGeometryThe geometry which should be mapped

This method takes a TrackingGeometry, finds all surfaces with material proxis and returns you a Cache object tO be used

Returns
State object configured for material mapping

◆ finalizeMaps()

void Acts::SurfaceMaterialMapper::finalizeMaps ( State & mState) const

Method to finalize the maps.

It calls the final run averaging and then transforms the AccumulatedSurface material class to a surface material class type

Parameters
mState

◆ mapInteraction()

void Acts::SurfaceMaterialMapper::mapInteraction ( State & mState,
RecordedMaterialTrack & mTrack ) const

Loop through all the material interactions and add them to the associated surface.

Parameters
mStateThe current state map
mTrackThe material track to be mapped

◆ mapMaterialTrack()

void Acts::SurfaceMaterialMapper::mapMaterialTrack ( State & mState,
RecordedMaterialTrack & mTrack ) const

Process/map a single track.

Parameters
mStateThe current state map
mTrackThe material track to be mapped
Note
the RecordedMaterialSlab of the track are assumed to be ordered from the starting position along the starting direction

◆ mapSurfaceInteraction()

void Acts::SurfaceMaterialMapper::mapSurfaceInteraction ( State & mState,
std::vector< MaterialInteraction > & rMaterial ) const

Loop through all the material interactions and add them to the associated surface.

Parameters
mStateThe current state map
rMaterialVector of all the material interactions that will be mapped
Note
The material interactions are assumed to have an associated surface ID