File JsonMaterialDecorator.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent

class JsonMaterialDecorator : public Acts::IMaterialDecorator
#include <Acts/Plugins/Json/JsonMaterialDecorator.hpp>

Material decorator from Json format.

This reads in material maps for surfaces and volumes from a json file

Public Types

using SurfaceMaterialMap = std::map<GeometryIdentifier, std::shared_ptr<const ISurfaceMaterial>>
using VolumeMaterialMap = std::map<GeometryIdentifier, std::shared_ptr<const IVolumeMaterial>>

Public Functions

inline JsonMaterialDecorator(const MaterialMapJsonConverter::Config &rConfig, const std::string &jFileName, Acts::Logging::Level level, bool clearSurfaceMaterial = true, bool clearVolumeMaterial = true)
inline virtual void decorate(Surface &surface) const final

Decorate a surface.


surface – the non-cost surface that is decorated

inline virtual void decorate(TrackingVolume &volume) const final

Decorate a TrackingVolume.


volume – the non-cost volume that is decorated

Private Functions

inline const Logger &logger() const

Private Members

bool m_clearSurfaceMaterial = {true}
bool m_clearVolumeMaterial = {true}
std::unique_ptr<const Logger> m_logger
MaterialMapJsonConverter::Config m_readerConfig
SurfaceMaterialMap m_surfaceMaterialMap
VolumeMaterialMap m_volumeMaterialMap