Class Acts::SurfaceMaterialMapper¶
-
class Acts::SurfaceMaterialMapper¶
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
Public Types
-
using StraightLinePropagator = Propagator<StraightLineStepper, Navigator>¶
Public 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.
- Parameters
cfg – Configuration struct
propagator – The straight line propagator
slogger – The logger
-
State createState(const GeometryContext &gctx, const MagneticFieldContext &mctx, const TrackingGeometry &tGeometry) const¶
helper method that creates the cache for the mapping
This method takes a TrackingGeometry, finds all surfaces with material proxis and returns you a Cache object tO be used
- Parameters
gctx – [in] The geometry context to use
mctx – [in] The magnetic field context to use
tGeometry – [in] The geometry which should be mapped
-
void 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 –
-
void mapMaterialTrack(State &mState, RecordedMaterialTrack &mTrack) const¶
Process/map a single track.
Note
the RecordedMaterialSlab of the track are assumed to be ordered from the starting position along the starting direction
- Parameters
mState – The current state map
mTrack – The material track to be mapped
-
struct Config¶
Nested Configuration struct for the material mapper.
-
struct State¶
Nested State struct which is used for the mapping prococess.
Public Functions
-
inline State(const GeometryContext &gctx, const MagneticFieldContext &mctx)¶
- Parameters
gctx – [in] The geometry context to use
mctx – [in] The magnetic field context to use
Public Members
-
std::map<GeometryIdentifier, AccumulatedSurfaceMaterial> accumulatedMaterial¶
The accumulated material per geometry ID.
-
std::reference_wrapper<const GeometryContext> geoContext¶
Reference to the geometry context for the mapping.
-
std::reference_wrapper<const MagneticFieldContext> magFieldContext¶
Reference to the magnetic field context.
-
std::map<GeometryIdentifier, std::unique_ptr<const ISurfaceMaterial>> surfaceMaterial¶
The created surface material from it.
-
std::map<GeometryIdentifier, std::shared_ptr<const IVolumeMaterial>> volumeMaterial¶
The volume material of the input tracking geometry.
-
inline State(const GeometryContext &gctx, const MagneticFieldContext &mctx)¶
-
using StraightLinePropagator = Propagator<StraightLineStepper, Navigator>¶