ATLAS Offline Software
Loading...
Searching...
No Matches
ActsMaterialJsonWriterTool.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
7
9
10#include <Acts/Material/TrackingGeometryMaterial.hpp>
11#include <fstream>
12#include <ios>
13#include <iostream>
14#include <stdexcept>
15
16
17ActsMaterialJsonWriterTool::ActsMaterialJsonWriterTool(const std::string &type, const std::string &name,
18 const IInterface *parent)
19 : base_class(type, name, parent)
20{
21}
22
26
27StatusCode
29{
30 ATH_MSG_INFO("Starting Material writer");
31
32 return StatusCode::SUCCESS;
33}
34
35void
37 const Acts::TrackingGeometryMaterial& detMaterial) const {
38 // Setup the converter config
39 Acts::MaterialMapJsonConverter::Config cfg;
40 cfg.context = gctx.context();
41 cfg.processSensitives = m_processSensitives;
42 cfg.processApproaches = m_processApproaches;
43 cfg.processRepresenting = m_processRepresenting;
44 cfg.processBoundaries = m_processBoundaries;
45 cfg.processVolumes = m_processVolumes;
46 cfg.processDenseVolumes = m_processDenseVolumes;
47 cfg.processNonMaterial = m_processNonMaterial;
48
49 // Evoke the converter
50 Acts::MaterialMapJsonConverter jmConverter(cfg, Acts::Logging::INFO);
51 auto jout = jmConverter.materialMapsToJson(detMaterial);
52 // And write the file
53 std::ofstream ofj(m_filePath);
54 ofj << std::setw(4) << jout << std::endl;
55}
56
57void
59 const Acts::TrackingGeometry& tGeometry) const {
60 // Setup the converter config
61 Acts::MaterialMapJsonConverter::Config cfg;
62 cfg.context = gctx.context();
63 cfg.processSensitives = m_processSensitives;
64 cfg.processApproaches = m_processApproaches;
65 cfg.processRepresenting = m_processRepresenting;
66 cfg.processBoundaries = m_processBoundaries;
67 cfg.processVolumes = m_processVolumes;
68 cfg.processDenseVolumes = m_processDenseVolumes;
69 cfg.processNonMaterial = m_processNonMaterial;
70
71 // Evoke the converter
72 Acts::MaterialMapJsonConverter jmConverter(cfg, Acts::Logging::INFO);
73 auto jout = jmConverter.trackingGeometryToJson(tGeometry);
74 // And write the file
75 std::ofstream ofj(m_filePath);
76 ofj << std::setw(4) << jout << std::endl;
77}
#define ATH_MSG_INFO(x)
Gaudi::Property< bool > m_processSensitives
virtual void write(const ActsTrk::GeometryContext &gctx, const Acts::TrackingGeometryMaterial &detMaterial) const override
Gaudi::Property< bool > m_processVolumes
ActsMaterialJsonWriterTool(const std::string &type, const std::string &name, const IInterface *parent)
Gaudi::Property< std::string > m_filePath
Gaudi::Property< bool > m_processBoundaries
Gaudi::Property< bool > m_processApproaches
Gaudi::Property< bool > m_processDenseVolumes
Gaudi::Property< bool > m_processNonMaterial
virtual StatusCode initialize() override
Gaudi::Property< bool > m_processRepresenting
Acts::GeometryContext context() const