ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsGPUGeometry
src
DeviceDetectorDescriptionSvc.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef ACTSGPUGEOMETRY_DEVICEDETECTORDESCRIPTIONSVC_H
5
#define ACTSGPUGEOMETRY_DEVICEDETECTORDESCRIPTIONSVC_H
6
7
#include "
AthenaBaseComps/AthService.h
"
8
#include "GaudiKernel/ToolHandle.h"
9
#include "
StoreGate/StoreGateSvc.h
"
10
11
#include "
IDeviceDetectorDescriptionSvc.h
"
12
#include "
ActsGeometryInterfaces/ITrackingGeometrySvc.h
"
13
14
#include "
AthDeviceInterfaces/IMemoryResourcesTool.h
"
15
#include "
AthDeviceInterfaces/ICopyTool.h
"
16
#include "
InDetIdentifier/PixelID.h
"
17
#include "
InDetIdentifier/SCT_ID.h
"
18
#include "
InDetReadoutGeometry/SiDetectorElementCollection.h
"
19
#include "
PixelReadoutGeometry/PixelDetectorManager.h
"
20
#include "
SCT_ReadoutGeometry/SCT_DetectorManager.h
"
21
#include "
InDetReadoutGeometry/SiDetectorDesign.h
"
22
#include "
PixelReadoutGeometry/PixelModuleDesign.h
"
23
#include "
SCT_ReadoutGeometry/SCT_BarrelModuleSideDesign.h
"
24
#include "
SCT_ReadoutGeometry/SCT_ForwardModuleSideDesign.h
"
25
#include "
SCT_ReadoutGeometry/StripStereoAnnulusDesign.h
"
26
#include "
InDetIdentifier/PixelID.h
"
27
#include "
InDetReadoutGeometry/SiDetectorManager.h
"
28
#include "
InDetReadoutGeometry/SiDetectorElement.h
"
29
#include "
InDetIdentifier/SCT_ID.h
"
30
31
#include "Acts/Surfaces/Surface.hpp"
32
#include "Acts/Geometry/TrackingGeometry.hpp"
33
#include "Acts/Geometry/GeometryIdentifier.hpp"
34
#include "
ActsGeometry/ActsDetectorElement.h
"
35
#include "
ActsGPUEvent/TracccDetectorDesignDescription.h
"
36
#include "
ActsGPUEvent/TracccDetectorGeometryDescription.h
"
37
#include "
ActsGPUEvent/GeometryIdMapping.h
"
38
39
#include "traccc/io/read_detector.hpp"
40
#include "traccc/geometry/detector_design_description.hpp"
41
42
#include "detray/geometry/tracking_surface.hpp"
43
44
#include <memory>
45
#include <mutex>
46
#include <string>
47
#include <unordered_map>
48
49
struct
moduleInfo
{
50
bool
pixel
{
false
};
51
bool
isAnnulus
{
false
};
52
bool
equidistant_binning
{
false
};
53
std::vector<traccc::scalar>
row_centres
;
54
std::vector<traccc::scalar>
column_centres
;
55
float
module_width
{0.f};
56
float
module_length
{0.f};
57
int
columns
{0};
58
int
rows
{0};
59
int
side
{0};
60
float
lorentz_shift_x
= 0.f;
61
float
lorentz_shift_y
= 0.f;
62
};
63
64
struct
designKey
{
65
bool
pixel
{
false
};
66
bool
isAnnulus
{
false
};
67
std::vector<traccc::scalar>
edgesX
;
68
std::vector<traccc::scalar>
edgesY
;
69
float
width
{0.f};
70
float
length
{0.f};
71
72
bool
operator<
(
const
designKey
& other)
const
{
73
return
std::tie(
pixel
,
isAnnulus
,
edgesX
,
edgesY
,
width
,
length
) <
74
std::tie(other.pixel, other.isAnnulus, other.edgesX, other.edgesY, other.width,
75
other.length);
76
}
77
};
78
79
namespace
ActsTrk
{
80
103
class
DeviceDetectorDescriptionSvc
104
:
public
extends<AthService, IDeviceDetectorDescriptionSvc>
105
{
106
public
:
107
108
using
extends::extends;
109
111
virtual
StatusCode
initialize
()
override
;
112
114
virtual
const
std::vector<StaticCondEntry>&
staticCondEntries
()
const override
{
115
return
m_staticCondEntries
;
116
}
117
118
private
:
119
120
ServiceHandle<StoreGateSvc>
m_detStore
{
this
,
"DetectorStore"
,
"StoreGateSvc/DetectorStore"
};
121
124
ToolHandle<AthDevice::IMemoryResourcesTool>
m_MRs
{
125
this
,
"MemoryResourcesTool"
,
""
,
126
"The memory resources tool to use for allocating memory on the device"
};
127
128
130
ToolHandle<AthDevice::ICopyTool>
m_copy
{
131
this
,
"CopyProviderTool"
,
""
,
"Vecmem copy provider tool"
};
132
133
Gaudi::Property<std::string>
m_hostDetectorName
{
134
this
,
"HostDetectorName"
,
""
,
135
"Detray host detector object"
};
136
137
Gaudi::Property<std::string>
m_deviceDetectorName
{
138
this
,
"DeviceDetectorName"
,
""
,
139
"StoreGate name for the device (buffer) detector object"
};
140
143
Gaudi::Property<std::string>
m_deviceDesignObjectName
{
144
this
,
"DeviceDigitizationObjectName"
,
""
,
145
"Traccc device digitization object"
};
146
Gaudi::Property<std::string>
m_hostDesignObjectName
{
147
this
,
"HostDigitizationObjectName"
,
""
,
148
"Traccc host digitization object"
};
149
150
151
Gaudi::Property<std::string>
m_geoIdMappingObjectName
{
152
this
,
"GeoIdMappingObjectName"
,
""
,
153
"StoreGate name for the detray/acts/athena geo id mapping"
};
154
157
const
PixelID
*
m_pixelID
{
nullptr
};
158
const
SCT_ID
*
m_stripID
{
nullptr
};
159
Gaudi::Property<std::string>
m_pixelIdHelperName
{
this
,
"PixelIDHelperName"
,
"PixelID"
,
160
"Pixel-like ID helper name to retrieve from DetectorStore"
};
161
Gaudi::Property<std::string>
m_stripIdHelperName
{
this
,
"StripIDHelperName"
,
"SCT_ID"
,
162
"Strip-like ID helper name to retrieve from DetectorStore"
};
163
164
const
InDetDD::PixelDetectorManager
*
m_pixelManager
{
nullptr
};
165
const
InDetDD::SCT_DetectorManager
*
m_stripManager
{
nullptr
};
166
168
169
std::vector<StaticCondEntry>
m_staticCondEntries
;
170
171
std::shared_ptr<const Acts::TrackingGeometry>
m_trackingGeometry
;
172
std::map<Identifier, moduleInfo>
m_atlasModuleInfo
;
173
174
ServiceHandle<ActsTrk::ITrackingGeometrySvc>
m_trackingGeometrySvc
{
this
,
"TrackingGeometrySvc"
,
"ActsTrackingGeometrySvc"
};
175
176
};
177
178
}
// namespace ActsTrk
179
180
#endif
// ACTSGPUGEOMETRY_DEVICEDETECTORDESCRIPTIONSVC_H
ActsDetectorElement.h
ITrackingGeometrySvc.h
AthService.h
GeometryIdMapping.h
ICopyTool.h
IDeviceDetectorDescriptionSvc.h
IMemoryResourcesTool.h
PixelDetectorManager.h
PixelID.h
This is an Identifier helper class for the Pixel subdetector.
PixelModuleDesign.h
SCT_BarrelModuleSideDesign.h
SCT_DetectorManager.h
SCT_ForwardModuleSideDesign.h
SCT_ID.h
This is an Identifier helper class for the SCT subdetector.
SiDetectorDesign.h
SiDetectorElementCollection.h
SiDetectorElement.h
SiDetectorManager.h
StoreGateSvc.h
StripStereoAnnulusDesign.h
TracccDetectorDesignDescription.h
TracccDetectorGeometryDescription.h
ActsTrk::DeviceDetectorDescriptionSvc
Service providing the static device detector description.
Definition
DeviceDetectorDescriptionSvc.h:105
ActsTrk::DeviceDetectorDescriptionSvc::m_hostDetectorName
Gaudi::Property< std::string > m_hostDetectorName
Definition
DeviceDetectorDescriptionSvc.h:133
ActsTrk::DeviceDetectorDescriptionSvc::m_detStore
ServiceHandle< StoreGateSvc > m_detStore
Definition
DeviceDetectorDescriptionSvc.h:120
ActsTrk::DeviceDetectorDescriptionSvc::m_pixelID
const PixelID * m_pixelID
Conversion helpers (to retrieve module design, hash, etc.) {.
Definition
DeviceDetectorDescriptionSvc.h:157
ActsTrk::DeviceDetectorDescriptionSvc::m_pixelIdHelperName
Gaudi::Property< std::string > m_pixelIdHelperName
Definition
DeviceDetectorDescriptionSvc.h:159
ActsTrk::DeviceDetectorDescriptionSvc::m_stripManager
const InDetDD::SCT_DetectorManager * m_stripManager
Definition
DeviceDetectorDescriptionSvc.h:165
ActsTrk::DeviceDetectorDescriptionSvc::m_copy
ToolHandle< AthDevice::ICopyTool > m_copy
The copy tool used for copying data to device.
Definition
DeviceDetectorDescriptionSvc.h:130
ActsTrk::DeviceDetectorDescriptionSvc::staticCondEntries
virtual const std::vector< StaticCondEntry > & staticCondEntries() const override
Static per-module entries, indexed like the detector conditions description.
Definition
DeviceDetectorDescriptionSvc.h:114
ActsTrk::DeviceDetectorDescriptionSvc::m_MRs
ToolHandle< AthDevice::IMemoryResourcesTool > m_MRs
Definition
DeviceDetectorDescriptionSvc.h:124
ActsTrk::DeviceDetectorDescriptionSvc::m_geoIdMappingObjectName
Gaudi::Property< std::string > m_geoIdMappingObjectName
Definition
DeviceDetectorDescriptionSvc.h:151
ActsTrk::DeviceDetectorDescriptionSvc::m_deviceDesignObjectName
Gaudi::Property< std::string > m_deviceDesignObjectName
Definition
DeviceDetectorDescriptionSvc.h:143
ActsTrk::DeviceDetectorDescriptionSvc::m_stripID
const SCT_ID * m_stripID
Definition
DeviceDetectorDescriptionSvc.h:158
ActsTrk::DeviceDetectorDescriptionSvc::m_trackingGeometrySvc
ServiceHandle< ActsTrk::ITrackingGeometrySvc > m_trackingGeometrySvc
Definition
DeviceDetectorDescriptionSvc.h:174
ActsTrk::DeviceDetectorDescriptionSvc::m_pixelManager
const InDetDD::PixelDetectorManager * m_pixelManager
Definition
DeviceDetectorDescriptionSvc.h:164
ActsTrk::DeviceDetectorDescriptionSvc::m_trackingGeometry
std::shared_ptr< const Acts::TrackingGeometry > m_trackingGeometry
Definition
DeviceDetectorDescriptionSvc.h:171
ActsTrk::DeviceDetectorDescriptionSvc::initialize
virtual StatusCode initialize() override
Function initializing and executing the geometry conversion.
Definition
DeviceDetectorDescriptionSvc.cxx:24
ActsTrk::DeviceDetectorDescriptionSvc::m_atlasModuleInfo
std::map< Identifier, moduleInfo > m_atlasModuleInfo
Definition
DeviceDetectorDescriptionSvc.h:172
ActsTrk::DeviceDetectorDescriptionSvc::m_hostDesignObjectName
Gaudi::Property< std::string > m_hostDesignObjectName
Definition
DeviceDetectorDescriptionSvc.h:146
ActsTrk::DeviceDetectorDescriptionSvc::m_staticCondEntries
std::vector< StaticCondEntry > m_staticCondEntries
Definition
DeviceDetectorDescriptionSvc.h:169
ActsTrk::DeviceDetectorDescriptionSvc::m_deviceDetectorName
Gaudi::Property< std::string > m_deviceDetectorName
Definition
DeviceDetectorDescriptionSvc.h:137
ActsTrk::DeviceDetectorDescriptionSvc::m_stripIdHelperName
Gaudi::Property< std::string > m_stripIdHelperName
Definition
DeviceDetectorDescriptionSvc.h:161
InDetDD::PixelDetectorManager
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Definition
PixelDetectorManager.h:47
InDetDD::SCT_DetectorManager
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
Definition
SCT_DetectorManager.h:50
PixelID
This is an Identifier helper class for the Pixel subdetector.
Definition
PixelID.h:69
SCT_ID
This is an Identifier helper class for the SCT subdetector.
Definition
SCT_ID.h:68
ServiceHandle
Definition
ClusterMakerTool.h:36
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
designKey
Definition
DeviceDetectorDescriptionSvc.h:64
designKey::operator<
bool operator<(const designKey &other) const
Definition
DeviceDetectorDescriptionSvc.h:72
designKey::width
float width
Definition
DeviceDetectorDescriptionSvc.h:69
designKey::pixel
bool pixel
Definition
DeviceDetectorDescriptionSvc.h:65
designKey::edgesX
std::vector< traccc::scalar > edgesX
Definition
DeviceDetectorDescriptionSvc.h:67
designKey::length
float length
Definition
DeviceDetectorDescriptionSvc.h:70
designKey::isAnnulus
bool isAnnulus
Definition
DeviceDetectorDescriptionSvc.h:66
designKey::edgesY
std::vector< traccc::scalar > edgesY
Definition
DeviceDetectorDescriptionSvc.h:68
moduleInfo
Definition
DeviceDetectorDescriptionSvc.h:49
moduleInfo::module_length
float module_length
Definition
DeviceDetectorDescriptionSvc.h:56
moduleInfo::lorentz_shift_y
float lorentz_shift_y
Definition
DeviceDetectorDescriptionSvc.h:61
moduleInfo::equidistant_binning
bool equidistant_binning
Definition
DeviceDetectorDescriptionSvc.h:52
moduleInfo::row_centres
std::vector< traccc::scalar > row_centres
Definition
DeviceDetectorDescriptionSvc.h:53
moduleInfo::module_width
float module_width
Definition
DeviceDetectorDescriptionSvc.h:55
moduleInfo::rows
int rows
Definition
DeviceDetectorDescriptionSvc.h:58
moduleInfo::side
int side
Definition
DeviceDetectorDescriptionSvc.h:59
moduleInfo::lorentz_shift_x
float lorentz_shift_x
Definition
DeviceDetectorDescriptionSvc.h:60
moduleInfo::column_centres
std::vector< traccc::scalar > column_centres
Definition
DeviceDetectorDescriptionSvc.h:54
moduleInfo::columns
int columns
Definition
DeviceDetectorDescriptionSvc.h:57
moduleInfo::isAnnulus
bool isAnnulus
Definition
DeviceDetectorDescriptionSvc.h:51
moduleInfo::pixel
bool pixel
Definition
DeviceDetectorDescriptionSvc.h:50
Generated on
for ATLAS Offline Software by
1.17.0