ATLAS Offline Software
Loading...
Searching...
No Matches
GeometryBuilder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
6// GeometryBuilder.h, (c) ATLAS Detector software
8
9#ifndef TRKDETDESCRTOOLS_GEOMETRYBUILDER_H
10#define TRKDETDESCRTOOLS_GEOMETRYBUILDER_H
11
12// Amg
14// Trk
21// Gaudi & Athena
23#include "GaudiKernel/ToolHandle.h"
24
25#ifdef TRKDETDESCR_MEMUSAGE
27#endif
28
29
31namespace Trk {
32
33 class TrackingGeometry;
34 class TrackingVolume;
35
45
47 public AthAlgTool,
49 virtual public IGeometryBuilder {
50
51 public:
53 GeometryBuilder(const std::string&,const std::string&,const IInterface*);
54
56 StatusCode initialize();
57
58
60 std::unique_ptr<TrackingGeometry> trackingGeometry(TrackingVolume* tvol = 0) const;
61
64
65 private:
66
68 std::unique_ptr<TrackingGeometry> atlasTrackingGeometry() const;
69
70#ifdef TRKDETDESCR_MEMUSAGE
71 MemoryLogger m_memoryLogger{};
72#endif
73
74 Gaudi::Property<bool> m_createWorld{this, "CreateWorldManually", true,
75 "Boolean Switch to create World manually"};
76 Gaudi::Property<int> m_navigationLevel{this, "NavigationLevel", 2};
77
78 Gaudi::Property<std::vector<double>> m_worldDimension
79 {this, "WorldDimension", {},
80 "The dimensions of the manually created world"};
81 Gaudi::Property<std::vector<double>> m_worldMaterialProperties
82 {this, "WorldMaterialProperties", {},
83 "The material properties of the created world"};
85
86 // -------------------------- Tools for geometry building ------------------------------------------------------ //
87
88 ToolHandle<ITrackingVolumeArrayCreator> m_trackingVolumeArrayCreator
89 {this, "TrackingVolumeArrayCreator",
90 "Trk::TrackingVolumeArrayCreator/TrackingVolumeArrayCreator",
91 "Helper Tool to create TrackingVolume Arrays"};
92
93 ToolHandle<ITrackingVolumeHelper> m_trackingVolumeHelper
94 {this, "TrackingVolumeHelper",
95 "Trk::TrackingVolumeHelper/TrackingVolumeHelper",
96 "Helper Tool to create TrackingVolumes"};
97
98 ToolHandle<IGeometryBuilder> m_inDetGeometryBuilder
99 {this, "InDetTrackingGeometryBuilder", "",
100 "GeometryBuilder for the InnerDetector"};
101
102 ToolHandle<IGeometryBuilder> m_caloGeometryBuilder
103 {this, "CaloTrackingGeometryBuilder", "",
104 "GeometryBuilder for the Calorimeters"};
105
106 ToolHandle<IGeometryBuilder> m_muonGeometryBuilder
107 {this, "MuonTrackingGeometryBuilder", "",
108 "GeometryBuilder for the Muon System"};
109
110 Gaudi::Property<bool> m_compactify{this, "Compactify", true,
111 "optimize event memory usage: register all surfaces with TG"};
112 Gaudi::Property<bool> m_synchronizeLayers
113 {this, "SynchronizeLayers", true,
114 "synchronize contained layer dimensions to volumes"};
115
116 };
117
118} // end of namespace
119
120#endif // TRKDETDESCRTOOLS_GEOMETRYBUILDER_H
121
Define macros for attributes used to control the static checker.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
StatusCode initialize()
AlgTool initialize method.
GeometrySignature geometrySignature() const
The unique signature.
ToolHandle< ITrackingVolumeHelper > m_trackingVolumeHelper
ToolHandle< IGeometryBuilder > m_muonGeometryBuilder
Gaudi::Property< std::vector< double > > m_worldDimension
ToolHandle< IGeometryBuilder > m_inDetGeometryBuilder
std::unique_ptr< TrackingGeometry > trackingGeometry(TrackingVolume *tvol=0) const
TrackingGeometry Interface method - optionally a pointer to Bounds.
Gaudi::Property< bool > m_createWorld
GeometryBuilder(const std::string &, const std::string &, const IInterface *)
Constructor.
Gaudi::Property< int > m_navigationLevel
ToolHandle< IGeometryBuilder > m_caloGeometryBuilder
Gaudi::Property< bool > m_synchronizeLayers
Gaudi::Property< bool > m_compactify
Gaudi::Property< std::vector< double > > m_worldMaterialProperties
std::unique_ptr< TrackingGeometry > atlasTrackingGeometry() const
TrackingGeometry for ATLAS setup.
ToolHandle< ITrackingVolumeArrayCreator > m_trackingVolumeArrayCreator
Material m_worldMaterial
the world material
Interface class IGeometryBuilders, the GeometryBuilder inherits from this one.
A common object to be contained by.
Definition Material.h:117
A small helper class looking at /proc/<PID>status.
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Ensure that the ATLAS eigen extensions are properly loaded.