ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
ActsMaterialJsonWriterTool Class Reference

#include <ActsMaterialJsonWriterTool.h>

Inheritance diagram for ActsMaterialJsonWriterTool:
Collaboration diagram for ActsMaterialJsonWriterTool:

Public Member Functions

virtual StatusCode initialize () override
 
 ActsMaterialJsonWriterTool (const std::string &type, const std::string &name, const IInterface *parent)
 
 ~ActsMaterialJsonWriterTool ()
 
virtual void write (const ActsGeometryContext &gctx, const Acts::TrackingGeometryMaterial &detMaterial) const override
 
virtual void write (const ActsGeometryContext &gctx, const Acts::TrackingGeometry &tGeometry) const override
 

Private Attributes

Gaudi::Property< std::string > m_filePath {this, "OutputFile", "material-maps.json", "Output json file for the Material Map"}
 
Gaudi::Property< bool > m_processSensitives {this, "processSensitives", true, "Write sensitive surface to the json file"}
 
Gaudi::Property< bool > m_processApproaches {this, "processApproaches", true, "Write approche surface to the json file"}
 
Gaudi::Property< bool > m_processRepresenting {this, "processRepresenting", true, "Write representing surface to the json file"}
 
Gaudi::Property< bool > m_processBoundaries {this, "processBoundaries", true, "Write boundary surface to the json file"}
 
Gaudi::Property< bool > m_processVolumes {this, "processVolumes", true, "Write volume to the json file"}
 
Gaudi::Property< bool > m_processDenseVolumes {this, "processDenseVolumes", false, "Write dense volume to the json file"}
 
Gaudi::Property< bool > m_processNonMaterial {this, "processNonMaterial", false, "Add proto material to all surfaces and volumes"}
 

Detailed Description

Definition at line 26 of file ActsMaterialJsonWriterTool.h.

Constructor & Destructor Documentation

◆ ActsMaterialJsonWriterTool()

ActsMaterialJsonWriterTool::ActsMaterialJsonWriterTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 16 of file ActsMaterialJsonWriterTool.cxx.

18  : base_class(type, name, parent)
19 {
20 }

◆ ~ActsMaterialJsonWriterTool()

ActsMaterialJsonWriterTool::~ActsMaterialJsonWriterTool ( )

Definition at line 22 of file ActsMaterialJsonWriterTool.cxx.

23 {
24 }

Member Function Documentation

◆ initialize()

StatusCode ActsMaterialJsonWriterTool::initialize ( )
overridevirtual

Definition at line 27 of file ActsMaterialJsonWriterTool.cxx.

28 {
29  ATH_MSG_INFO("Starting Material writer");
30 
31  return StatusCode::SUCCESS;
32 }

◆ write() [1/2]

void ActsMaterialJsonWriterTool::write ( const ActsGeometryContext gctx,
const Acts::TrackingGeometry &  tGeometry 
) const
overridevirtual

Definition at line 57 of file ActsMaterialJsonWriterTool.cxx.

58 {
59  // Setup the converter config
60  Acts::MaterialMapJsonConverter::Config cfg;
61  cfg.context = gctx.context();
62  cfg.processSensitives = m_processSensitives;
63  cfg.processApproaches = m_processApproaches;
64  cfg.processRepresenting = m_processRepresenting;
65  cfg.processBoundaries = m_processBoundaries;
66  cfg.processVolumes = m_processVolumes;
67  cfg.processDenseVolumes = m_processDenseVolumes;
68  cfg.processNonMaterial = m_processNonMaterial;
69 
70  // Evoke the converter
71  Acts::MaterialMapJsonConverter jmConverter(cfg, Acts::Logging::INFO);
72  auto jout = jmConverter.trackingGeometryToJson(tGeometry);
73  // And write the file
74  std::ofstream ofj(m_filePath);
75  ofj << std::setw(4) << jout << std::endl;
76 }

◆ write() [2/2]

void ActsMaterialJsonWriterTool::write ( const ActsGeometryContext gctx,
const Acts::TrackingGeometryMaterial &  detMaterial 
) const
overridevirtual

Definition at line 35 of file ActsMaterialJsonWriterTool.cxx.

36 {
37  // Setup the converter config
38  Acts::MaterialMapJsonConverter::Config cfg;
39  cfg.context = gctx.context();
40  cfg.processSensitives = m_processSensitives;
41  cfg.processApproaches = m_processApproaches;
42  cfg.processRepresenting = m_processRepresenting;
43  cfg.processBoundaries = m_processBoundaries;
44  cfg.processVolumes = m_processVolumes;
45  cfg.processDenseVolumes = m_processDenseVolumes;
46  cfg.processNonMaterial = m_processNonMaterial;
47 
48  // Evoke the converter
49  Acts::MaterialMapJsonConverter jmConverter(cfg, Acts::Logging::INFO);
50  auto jout = jmConverter.materialMapsToJson(detMaterial);
51  // And write the file
52  std::ofstream ofj(m_filePath);
53  ofj << std::setw(4) << jout << std::endl;
54 }

Member Data Documentation

◆ m_filePath

Gaudi::Property<std::string> ActsMaterialJsonWriterTool::m_filePath {this, "OutputFile", "material-maps.json", "Output json file for the Material Map"}
private

Definition at line 49 of file ActsMaterialJsonWriterTool.h.

◆ m_processApproaches

Gaudi::Property<bool> ActsMaterialJsonWriterTool::m_processApproaches {this, "processApproaches", true, "Write approche surface to the json file"}
private

Definition at line 51 of file ActsMaterialJsonWriterTool.h.

◆ m_processBoundaries

Gaudi::Property<bool> ActsMaterialJsonWriterTool::m_processBoundaries {this, "processBoundaries", true, "Write boundary surface to the json file"}
private

Definition at line 53 of file ActsMaterialJsonWriterTool.h.

◆ m_processDenseVolumes

Gaudi::Property<bool> ActsMaterialJsonWriterTool::m_processDenseVolumes {this, "processDenseVolumes", false, "Write dense volume to the json file"}
private

Definition at line 55 of file ActsMaterialJsonWriterTool.h.

◆ m_processNonMaterial

Gaudi::Property<bool> ActsMaterialJsonWriterTool::m_processNonMaterial {this, "processNonMaterial", false, "Add proto material to all surfaces and volumes"}
private

Definition at line 56 of file ActsMaterialJsonWriterTool.h.

◆ m_processRepresenting

Gaudi::Property<bool> ActsMaterialJsonWriterTool::m_processRepresenting {this, "processRepresenting", true, "Write representing surface to the json file"}
private

Definition at line 52 of file ActsMaterialJsonWriterTool.h.

◆ m_processSensitives

Gaudi::Property<bool> ActsMaterialJsonWriterTool::m_processSensitives {this, "processSensitives", true, "Write sensitive surface to the json file"}
private

Definition at line 50 of file ActsMaterialJsonWriterTool.h.

◆ m_processVolumes

Gaudi::Property<bool> ActsMaterialJsonWriterTool::m_processVolumes {this, "processVolumes", true, "Write volume to the json file"}
private

Definition at line 54 of file ActsMaterialJsonWriterTool.h.


The documentation for this class was generated from the following files:
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
ActsMaterialJsonWriterTool::m_processBoundaries
Gaudi::Property< bool > m_processBoundaries
Definition: ActsMaterialJsonWriterTool.h:53
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
ActsMaterialJsonWriterTool::m_processRepresenting
Gaudi::Property< bool > m_processRepresenting
Definition: ActsMaterialJsonWriterTool.h:52
ActsMaterialJsonWriterTool::m_processSensitives
Gaudi::Property< bool > m_processSensitives
Definition: ActsMaterialJsonWriterTool.h:50
ActsGeometryContext::context
Acts::GeometryContext context() const
Definition: ActsGeometryContext.h:45
ActsMaterialJsonWriterTool::m_processDenseVolumes
Gaudi::Property< bool > m_processDenseVolumes
Definition: ActsMaterialJsonWriterTool.h:55
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ActsMaterialJsonWriterTool::m_filePath
Gaudi::Property< std::string > m_filePath
Definition: ActsMaterialJsonWriterTool.h:49
ActsMaterialJsonWriterTool::m_processApproaches
Gaudi::Property< bool > m_processApproaches
Definition: ActsMaterialJsonWriterTool.h:51
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
WriteCaloSwCorrections.cfg
cfg
Definition: WriteCaloSwCorrections.py:23
ActsMaterialJsonWriterTool::m_processVolumes
Gaudi::Property< bool > m_processVolumes
Definition: ActsMaterialJsonWriterTool.h:54
python.Constants.INFO
int INFO
Definition: Control/AthenaCommon/python/Constants.py:15
ActsMaterialJsonWriterTool::m_processNonMaterial
Gaudi::Property< bool > m_processNonMaterial
Definition: ActsMaterialJsonWriterTool.h:56