ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkDetDescrSvc
TrkDetDescrSvc
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
12
#include "
TrkDetDescrInterfaces/ITrackingVolumesSvc.h
"
13
#include "
TrkDetDescrUtils/LayerIndex.h
"
14
#include "GaudiKernel/ToolHandle.h"
15
#include "GaudiKernel/ServiceHandle.h"
16
#include "
AthenaBaseComps/AthService.h
"
17
#include <string>
18
#include <vector>
19
20
class
StoreGateSvc
;
21
class
ISvcLocator;
22
23
template
<
class
TYPE>
class
SvcFactory
;
24
25
26
namespace
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
55
virtual
~TrackingVolumesSvc
();
56
57
58
private
:
59
60
ServiceHandle<StoreGateSvc>
m_pDetStore
;
61
63
std::vector<const Trk::Volume*>
m_volumes
;
65
std::vector<std::string >
m_volumeNames
;
66
67
};
68
}
69
70
inline
const
Trk::Volume
&
Trk::TrackingVolumesSvc::volume
(
const
Trk::ITrackingVolumesSvc::TrackingVolumeIdentifier
& volumeId)
const
71
{
return
*(
m_volumes
[volumeId]); }
72
73
inline
const
std::string&
Trk::TrackingVolumesSvc::volumeName
(
const
Trk::ITrackingVolumesSvc::TrackingVolumeIdentifier
& volumeId)
const
74
{
return
m_volumeNames
[volumeId]; }
75
76
#endif
77
AthService.h
ITrackingVolumesSvc.h
LayerIndex.h
ServiceHandle
Definition
ClusterMakerTool.h:36
StoreGateSvc
The Athena Transient Store API.
Definition
StoreGateSvc.h:120
SvcFactory
Definition
AthCnvSvc.h:28
Trk::ITrackingVolumesSvc::TrackingVolumeIdentifier
TrackingVolumeIdentifier
Enum to identify the various "volumes" which exist.
Definition
ITrackingVolumesSvc.h:38
Trk::TrackingVolumesSvc::TrackingVolumesSvc
TrackingVolumesSvc(const std::string &name, ISvcLocator *svc)
Standard Constructor.
Definition
TrackingVolumesSvc.cxx:24
Trk::TrackingVolumesSvc::volume
virtual const Trk::Volume & volume(const TrackingVolumeIdentifier &volumeId) const override
Provide the TrackingVolumes.
Definition
TrackingVolumesSvc.h:70
Trk::TrackingVolumesSvc::volumeName
virtual const std::string & volumeName(const TrackingVolumeIdentifier &volumeId) const override
Returns the name of the TrackingVolumes built with this Svc.
Definition
TrackingVolumesSvc.h:73
Trk::TrackingVolumesSvc::initialize
virtual StatusCode initialize() override
Initialize Service.
Definition
TrackingVolumesSvc.cxx:59
Trk::TrackingVolumesSvc::finalize
virtual StatusCode finalize() override
Finalize Service.
Definition
TrackingVolumesSvc.cxx:84
Trk::TrackingVolumesSvc::~TrackingVolumesSvc
virtual ~TrackingVolumesSvc()
Standard Destructor.
Trk::TrackingVolumesSvc::m_volumeNames
std::vector< std::string > m_volumeNames
the names of the TrackingVolumes
Definition
TrackingVolumesSvc.h:65
Trk::TrackingVolumesSvc::m_volumes
std::vector< const Trk::Volume * > m_volumes
Definition
TrackingVolumesSvc.h:63
Trk::TrackingVolumesSvc::m_pDetStore
ServiceHandle< StoreGateSvc > m_pDetStore
the cached volumes
Definition
TrackingVolumesSvc.h:60
Trk::Volume
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Definition
Volume.h:36
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Generated on
for ATLAS Offline Software by
1.17.0