ATLAS Offline Software
ActsMaterialJsonWriterTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ACTSGEOMETRY_ACTSMATERIALJSONWRITERTOOL_H
6 #define ACTSGEOMETRY_ACTSMATERIALJSONWRITERTOOL_H
7 
8 // ATHENA
11 #include "GaudiKernel/IInterface.h"
12 #include "Gaudi/Property.h" /*no forward decl: typedef*/
13 
14 // PACKAGE
17 
18 // ACTS
19 #include "Acts/Plugins/Json/MaterialMapJsonConverter.hpp"
20 
21 namespace Acts {
22  class TrackingGeometry;
23 }
24 
25 class ActsMaterialJsonWriterTool : public extends<AthAlgTool, IActsMaterialJsonWriterTool>
26 {
27 
28 public:
29 
30  virtual StatusCode initialize() override;
31 
32  ActsMaterialJsonWriterTool(const std::string& type, const std::string& name,
33  const IInterface* parent);
34 
36 
37  virtual
38  void
39  write(const ActsGeometryContext& gctx, const Acts::MaterialMapJsonConverter::DetectorMaterialMaps& detMaterial) const override;
40 
41  virtual
42  void
43  write(const ActsGeometryContext& gctx, const Acts::TrackingGeometry& tGeometry) const override;
44 
45 
46 private:
47 
48  Gaudi::Property<std::string> m_filePath{this, "OutputFile", "material-maps.json", "Output json file for the Material Map"};
49  Gaudi::Property<bool> m_processSensitives{this, "processSensitives", true, "Write sensitive surface to the json file"};
50  Gaudi::Property<bool> m_processApproaches{this, "processApproaches", true, "Write approche surface to the json file"};
51  Gaudi::Property<bool> m_processRepresenting{this, "processRepresenting", true, "Write representing surface to the json file"};
52  Gaudi::Property<bool> m_processBoundaries{this, "processBoundaries", true, "Write boundary surface to the json file"};
53  Gaudi::Property<bool> m_processVolumes{this, "processVolumes", true, "Write volume to the json file"};
54  Gaudi::Property<bool> m_processDenseVolumes{this, "processDenseVolumes", false, "Write dense volume to the json file"};
55  Gaudi::Property<bool> m_processNonMaterial{this, "processNonMaterial", false, "Add proto material to all surfaces and volumes"};
56 };
57 
58 #endif
ActsMaterialJsonWriterTool::initialize
virtual StatusCode initialize() override
Definition: ActsMaterialJsonWriterTool.cxx:26
ActsGeometryContext.h
ActsMaterialJsonWriterTool::m_processBoundaries
Gaudi::Property< bool > m_processBoundaries
Definition: ActsMaterialJsonWriterTool.h:52
ActsMaterialJsonWriterTool::write
virtual void write(const ActsGeometryContext &gctx, const Acts::MaterialMapJsonConverter::DetectorMaterialMaps &detMaterial) const override
Definition: ActsMaterialJsonWriterTool.cxx:34
Acts::DetectorMaterialMaps
std::pair< SurfaceMaterialMap, VolumeMaterialMap > DetectorMaterialMaps
Definition: ActsMaterialMapping.h:42
ActsMaterialJsonWriterTool::m_processRepresenting
Gaudi::Property< bool > m_processRepresenting
Definition: ActsMaterialJsonWriterTool.h:51
ActsMaterialJsonWriterTool::m_processSensitives
Gaudi::Property< bool > m_processSensitives
Definition: ActsMaterialJsonWriterTool.h:49
ActsMaterialJsonWriterTool::m_processDenseVolumes
Gaudi::Property< bool > m_processDenseVolumes
Definition: ActsMaterialJsonWriterTool.h:54
Acts
Definition: MultiTrajectory.h:45
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ActsMaterialJsonWriterTool
Definition: ActsMaterialJsonWriterTool.h:26
ActsMaterialJsonWriterTool::m_filePath
Gaudi::Property< std::string > m_filePath
Definition: ActsMaterialJsonWriterTool.h:48
ActsMaterialJsonWriterTool::m_processApproaches
Gaudi::Property< bool > m_processApproaches
Definition: ActsMaterialJsonWriterTool.h:50
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:28
ActsMaterialJsonWriterTool::ActsMaterialJsonWriterTool
ActsMaterialJsonWriterTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: ActsMaterialJsonWriterTool.cxx:15
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ActsMaterialJsonWriterTool::m_processVolumes
Gaudi::Property< bool > m_processVolumes
Definition: ActsMaterialJsonWriterTool.h:53
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
IActsMaterialJsonWriterTool.h
ActsMaterialJsonWriterTool::~ActsMaterialJsonWriterTool
~ActsMaterialJsonWriterTool()
Definition: ActsMaterialJsonWriterTool.cxx:21
AthService.h
ActsMaterialJsonWriterTool::m_processNonMaterial
Gaudi::Property< bool > m_processNonMaterial
Definition: ActsMaterialJsonWriterTool.h:55