ATLAS Offline Software
Loading...
Searching...
No Matches
TrkDetDescr/TrkDetDescrSvc/TrkDetDescrSvc/TrackingGeometrySvc.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// TrackingGeometrySvc.h, (c) ATLAS Detector software
8
9#ifndef TRKDETDESCRINTERFACES_TRACKINGGEOMETRYSERVICE_H
10#define TRKDETDESCRINTERFACES_TRACKINGGEOMETRYSERVICE_H
11
17#include "Gaudi/Property.h"
18#include "GaudiKernel/ToolHandle.h"
21
22#ifdef TRKDETDESCR_MEMUSAGE
24#endif
25
26
27class StoreGateSvc;
28class ISvcLocator;
29template <class TYPE> class SvcFactory;
30
31namespace Trk {
32 class TrackingGeometry;
33 class Layer;
35
36
43
45 public extends <AthService, ITrackingGeometrySvc>, virtual public ITagInfoMgr::Listener
46 {
47 public:
48
49 virtual StatusCode initialize() override;
50 virtual StatusCode finalize() override;
51
52 // TagInfoMgr callback
53 virtual void tagInfoUpdated() override final;
54
56 StatusCode trackingGeometryInit(bool needsInit = true);
57
59 virtual const Trk::TrackingGeometry* trackingGeometry() const override;
60
62 virtual const std::string& trackingGeometryName() const override;
63
64 friend class SvcFactory<TrackingGeometrySvc>;
65
67 using base_class::base_class;
68
69
70 private:
71 void trackingGeometryNotSet() const;
72
73 ToolHandle<Trk::IGeometryBuilder> m_trackingGeometryBuilder {this, "GeometryBuilder", ""};
75 mutable const Trk::TrackingGeometry* m_trackingGeometry {nullptr};
76
78 Gaudi::Property<std::string> m_trackingGeometryName {this, "TrackingGeometryName", "AtlasTrackingGeometry"};
80 ToolHandleArray<Trk::IGeometryProcessor> m_geometryProcessors {this, "GeometryProcessors", {}, "Tools to process geometry"};
82
83 #ifdef TRKDETDESCR_MEMUSAGE
84 Trk::MemoryLogger m_memoryLogger;
85 float m_changeVsize {0.0};
86 float m_changeRss {0.0};
87 #endif
88
89 Gaudi::Property<bool> m_rerunOnCallback {this, "RerunOnCallback", false};
91 Gaudi::Property<bool> m_buildGeometryFromTagInfo {this, "BuildGeometryFromTagInfo", true};
92 };
93}
94
98
99inline const std::string& Trk::TrackingGeometrySvc::trackingGeometryName() const
100 { return m_trackingGeometryName; }
101
102#endif // TRKDETDESCRINTERFACES_TRACKINGGEOMETRYSERVICE_H
103
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Listener interface class that client who want to be notified about TagInfo update should implement (a...
Definition ITagInfoMgr.h:72
The Athena Transient Store API.
This virtual base class encapsulates the logics to build pre/post/full update material for Layer stru...
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
A small helper class looking at /proc/<PID>status.
This service builds and registers the TrackingGeometry in the detector store.
StatusCode trackingGeometryInit(bool needsInit=true)
Create the geometry.
ToolHandle< Trk::IGeometryBuilder > m_trackingGeometryBuilder
the actual building tool
virtual StatusCode finalize() override
Finalize Service.
ToolHandleArray< Trk::IGeometryProcessor > m_geometryProcessors
processors to help
virtual const std::string & trackingGeometryName() const override
Gaudi::Property< std::string > m_trackingGeometryName
the name of the TrackingGeometry
const Trk::TrackingGeometry * m_trackingGeometry
the cached TrackingGeometry
virtual const Trk::TrackingGeometry * trackingGeometry() const override
Provide the TrackingGeometry.
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
Ensure that the ATLAS eigen extensions are properly loaded.
void initialize()