ATLAS Offline Software
Loading...
Searching...
No Matches
GeometryBuilderCond.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// GeometryBuilderCond.h, (c) ATLAS Detector software
8
9#ifndef TRKDETDESCRTOOLS_GEOMETRYBUILDERCOND_H
10#define TRKDETDESCRTOOLS_GEOMETRYBUILDERCOND_H
11
12// Amg
14// Trk
22// Gaudi & Athena
24#include "GaudiKernel/ToolHandle.h"
25
26#ifdef TRKDETDESCR_MEMUSAGE
28#endif
29
30namespace Trk {
31
33class TrackingVolume;
34
45
47 : public AthAlgTool
49 , virtual public IGeometryBuilderCond
50{
51
52public:
54 GeometryBuilderCond(const std::string&, const std::string&, const IInterface*);
55
57 virtual StatusCode initialize() override;
58
63 virtual std::unique_ptr<Trk::TrackingGeometry> trackingGeometry(
64 const EventContext& ctx,
66 SG::WriteCondHandle<TrackingGeometry>& whandle) const override;
67
69 virtual GeometrySignature geometrySignature() const override { return Trk::Global; }
70
71private:
73 std::unique_ptr<Trk::TrackingGeometry> atlasTrackingGeometry
74 (const EventContext& ctx, SG::WriteCondHandle<TrackingGeometry>& whandle) const;
75
76#ifdef TRKDETDESCR_MEMUSAGE
77 MemoryLogger m_memoryLogger{};
78#endif
79
80 Gaudi::Property<bool> m_createWorld{this, "CreateWorldManually", true,
81 "Boolean Switch to create World manually"};
82 Gaudi::Property<int> m_navigationLevel{this, "NavigationLevel", 2};
83
84 Gaudi::Property<std::vector<double>> m_worldDimension
85 {this, "WorldDimension", {}, "The dimensions of the manually created world"};
86 Gaudi::Property<std::vector<double>> m_worldMaterialProperties
87 {this, "WorldMaterialProperties", {}, "The material properties of the created world"};
89
90 // -------------------------- Tools for geometry building ------------------------------------------------------ //
91
92 ToolHandle<ITrackingVolumeArrayCreator> m_trackingVolumeArrayCreator
93 {this, "TrackingVolumeArrayCreator",
94 "Trk::TrackingVolumeArrayCreator/TrackingVolumeArrayCreator",
95 "Helper Tool to create TrackingVolume Arrays"};
96
97 ToolHandle<ITrackingVolumeHelper> m_trackingVolumeHelper
98 {this, "TrackingVolumeHelper",
99 "Trk::TrackingVolumeHelper/TrackingVolumeHelper",
100 "Helper Tool to create TrackingVolumes"};
101
102 ToolHandle<IGeometryBuilderCond> m_inDetGeometryBuilderCond
103 {this, "InDetTrackingGeometryBuilder", "",
104 "GeometryBuilderCond for the InnerDetector"};
105
106 ToolHandle<IGeometryBuilderCond> m_caloGeometryBuilderCond
107 {this, "CaloTrackingGeometryBuilder", "",
108 "GeometryBuilderCond for the Calorimeters"};
109
110 ToolHandle<IGeometryBuilderCond> m_hgtdGeometryBuilderCond
111 {this, "HGTD_TrackingGeometryBuilder", "", "GeometryBuilder for the HGTD"};
112
113 ToolHandle<IGeometryBuilderCond> m_muonGeometryBuilderCond
114 {this, "MuonTrackingGeometryBuilder", "",
115 "GeometryBuilderCond for the Muon System"};
116
117 Gaudi::Property<bool> m_compactify{this, "Compactify", true,
118 "optimize event memory usage: register all surfaces with TG"};
119 Gaudi::Property<bool> m_synchronizeLayers{this, "SynchronizeLayers", true,
120 "synchronize contained layer dimensions to volumes"};
121};
122
123} // end of namespace
124
125#endif // TRKDETDESCRTOOLS_GEOMETRYBUILDERCOND_H
126
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
virtual std::unique_ptr< Trk::TrackingGeometry > trackingGeometry(const EventContext &ctx, Trk::TrackingVolume *tVol, SG::WriteCondHandle< TrackingGeometry > &whandle) const override
TrackingGeometry Interface method - optionally a pointer to Bounds Interface marked as not thread saf...
Gaudi::Property< bool > m_createWorld
ToolHandle< IGeometryBuilderCond > m_muonGeometryBuilderCond
ToolHandle< ITrackingVolumeHelper > m_trackingVolumeHelper
Material m_worldMaterial
the world material
Gaudi::Property< bool > m_synchronizeLayers
ToolHandle< IGeometryBuilderCond > m_caloGeometryBuilderCond
ToolHandle< IGeometryBuilderCond > m_inDetGeometryBuilderCond
Gaudi::Property< std::vector< double > > m_worldDimension
Gaudi::Property< std::vector< double > > m_worldMaterialProperties
Gaudi::Property< int > m_navigationLevel
ToolHandle< IGeometryBuilderCond > m_hgtdGeometryBuilderCond
std::unique_ptr< Trk::TrackingGeometry > atlasTrackingGeometry(const EventContext &ctx, SG::WriteCondHandle< TrackingGeometry > &whandle) const
TrackingGeometry for ATLAS setup.
Gaudi::Property< bool > m_compactify
ToolHandle< ITrackingVolumeArrayCreator > m_trackingVolumeArrayCreator
virtual StatusCode initialize() override
AlgTool initialize method.
virtual GeometrySignature geometrySignature() const override
The unique signature.
GeometryBuilderCond(const std::string &, const std::string &, const IInterface *)
Constructor.
Interface class IGeometryBuilderCond, 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.