ATLAS Offline Software
Loading...
Searching...
No Matches
TrackingGeometrySvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 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 {
33 class TrackingGeometry;
34 class Layer;
36
37
44
46 public extends <AthService, ITrackingGeometrySvc>, virtual public ITagInfoMgr::Listener
47 {
48 public:
49
50 virtual StatusCode initialize() override;
51 virtual StatusCode finalize() override;
52
53 // TagInfoMgr callback
54 virtual void tagInfoUpdated() override final;
55
57 StatusCode trackingGeometryInit(bool needsInit = true);
58
60 virtual const Trk::TrackingGeometry* trackingGeometry() const override;
61
63 virtual const std::string& trackingGeometryName() const override;
64
65 friend class SvcFactory<TrackingGeometrySvc>;
66
68 TrackingGeometrySvc(const std::string& name, ISvcLocator* svc);
69
72
73
74 private:
75 void trackingGeometryNotSet() const;
76
77 ToolHandle<Trk::IGeometryBuilder> m_trackingGeometryBuilder {this, "GeometryBuilder", ""};
79 mutable const Trk::TrackingGeometry* m_trackingGeometry {nullptr};
80
82 Gaudi::Property<std::string> m_trackingGeometryName {this, "TrackingGeometryName", "AtlasTrackingGeometry"};
84 ToolHandleArray<Trk::IGeometryProcessor> m_geometryProcessors; // Currently doesn't work: {this, "GeometryProcessors", {}, "Tools to process geometry"};
86
87 #ifdef TRKDETDESCR_MEMUSAGE
88 Trk::MemoryLogger m_memoryLogger;
89 float m_changeVsize {0.0};
90 float m_changeRss {0.0};
91 #endif
92
93 Gaudi::Property<bool> m_rerunOnCallback {this, "RerunOnCallback", false};
95 Gaudi::Property<bool> m_buildGeometryFromTagInfo {this, "BuildGeometryFromTagInfo", true};
96 };
97}
98
102
103inline const std::string& Trk::TrackingGeometrySvc::trackingGeometryName() const
104 { return m_trackingGeometryName; }
105
106#endif // TRKDETDESCRINTERFACES_TRACKINGGEOMETRYSERVICE_H
107
#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.
Interface class IGeometryProcessors.
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.
TrackingGeometrySvc(const std::string &name, ISvcLocator *svc)
Standard Destructor.
StatusCode trackingGeometryInit(bool needsInit=true)
Create the geometry.
virtual ~TrackingGeometrySvc()
Destructor.
Gaudi::Property< bool > m_rerunOnCallback
< processors to help
virtual void tagInfoUpdated() override final
ToolHandle< Trk::IGeometryBuilder > m_trackingGeometryBuilder
the actual building tool
virtual StatusCode finalize() override
Finalize Service.
ToolHandleArray< Trk::IGeometryProcessor > m_geometryProcessors
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.
Gaudi::Property< bool > m_buildGeometryFromTagInfo
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
Ensure that the ATLAS eigen extensions are properly loaded.
void initialize()