ATLAS Offline Software
Loading...
Searching...
No Matches
TrackingVolumesSvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
6// TrackingVolumesSvc.h, (c) ATLAS Detector software
8
9#ifndef TRKDETDESCRINTERFACES_TRACKINGVOLUMESSERVICE_H
10#define TRKDETDESCRINTERFACES_TRACKINGVOLUMESSERVICE_H
11
14#include "GaudiKernel/ToolHandle.h"
15#include "GaudiKernel/ServiceHandle.h"
17#include <string>
18#include <vector>
19
20class StoreGateSvc;
21class ISvcLocator;
22
23template <class TYPE> class SvcFactory;
24
25
26namespace Trk {
27
28 class Volume;
29
30
38 class TrackingVolumesSvc : public extends<AthService, ITrackingVolumesSvc> {
39
40 public:
41
42 virtual StatusCode initialize() override;
43 virtual StatusCode finalize() override;
44
46 virtual const Trk::Volume& volume(const TrackingVolumeIdentifier& volumeId) const override;
47
49 virtual const std::string& volumeName(const TrackingVolumeIdentifier& volumeId) const override;
50
52 TrackingVolumesSvc(const std::string& name, ISvcLocator* svc);
53
56
57
58 private:
59
61
63 std::vector<const Trk::Volume*> m_volumes;
65 std::vector<std::string > m_volumeNames;
66
67 };
68}
69
72
74 { return m_volumeNames[volumeId]; }
75
76#endif
77
The Athena Transient Store API.
TrackingVolumeIdentifier
Enum to identify the various "volumes" which exist.
TrackingVolumesSvc(const std::string &name, ISvcLocator *svc)
Standard Constructor.
virtual const Trk::Volume & volume(const TrackingVolumeIdentifier &volumeId) const override
Provide the TrackingVolumes.
virtual const std::string & volumeName(const TrackingVolumeIdentifier &volumeId) const override
Returns the name of the TrackingVolumes built with this Svc.
virtual StatusCode initialize() override
Initialize Service.
virtual StatusCode finalize() override
Finalize Service.
virtual ~TrackingVolumesSvc()
Standard Destructor.
std::vector< std::string > m_volumeNames
the names of the TrackingVolumes
std::vector< const Trk::Volume * > m_volumes
ServiceHandle< StoreGateSvc > m_pDetStore
the cached volumes
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Definition Volume.h:36
Ensure that the ATLAS eigen extensions are properly loaded.