ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsInterop
src
IdentityHelper.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
ActsInterop/IdentityHelper.h
"
6
7
#include <stdexcept>
8
9
#include "
HGTD_Identifier/HGTD_ID.h
"
10
#include "
HGTD_ReadoutGeometry/HGTD_DetectorElement.h
"
11
#include "
InDetIdentifier/PixelID.h
"
12
#include "
InDetIdentifier/SCT_ID.h
"
13
#include "
InDetReadoutGeometry/SiDetectorElement.h
"
14
#include "
ReadoutGeometryBase/SolidStateDetectorElementBase.h
"
15
IdentityHelper::IdentityHelper
(
16
const
InDetDD::SolidStateDetectorElementBase
* elem)
17
:
m_elem
(elem),
m_isInDet
(false) {
18
if
(
const
auto
* siElem =
dynamic_cast<
const
InDetDD::SiDetectorElement
*
>
(
m_elem
)) {
19
m_isInDet
=
true
;
20
if
(siElem->isPixel()) {
21
m_helper
=
static_cast<
const
PixelID
*
>
(siElem->getIdHelper());
22
}
else
if
(siElem->isSCT()) {
23
m_helper
=
static_cast<
const
SCT_ID
*
>
(siElem->getIdHelper());
24
}
25
}
else
if
(
const
auto
* hgtdElem =
dynamic_cast<
const
InDetDD::HGTD_DetectorElement
*
>
(
m_elem
)) {
26
m_helper
=
static_cast<
const
HGTD_ID
*
>
(hgtdElem->getIdHelper());
27
}
else
{
28
throw
std::invalid_argument(
29
"ActsInterop IdentityHelper constructed with "
30
"SolidStateDetectorElementBase... can only be used for Pixel, SCT and "
31
"HGTD det elements"
);
32
}
33
}
34
35
const
PixelID
*
36
IdentityHelper::getPixelIDHelper
()
const
37
{
38
return
std::get<const PixelID*>(
m_helper
);
39
}
40
const
SCT_ID
*
41
IdentityHelper::getSCTIDHelper
()
const
42
{
43
return
std::get<const SCT_ID*>(
m_helper
);
44
}
45
46
const
HGTD_ID
*
47
IdentityHelper::getHgtdIdHelper
()
const
48
{
49
return
std::get<const HGTD_ID*>(
m_helper
);
50
}
51
52
int
53
IdentityHelper::bec
()
const
54
{
55
auto
id
=
m_elem
->identify();
56
if
(
m_isInDet
) {
57
const
InDetDD::SiDetectorElement
* thisElement =
58
static_cast<
const
InDetDD::SiDetectorElement
*
>
(
m_elem
);
59
if
(thisElement->
isPixel
()) {
60
return
getPixelIDHelper
()->
barrel_ec
(
id
);
61
}
else
{
62
return
getSCTIDHelper
()->
barrel_ec
(
id
);
63
}
64
}
else
{
65
return
getHgtdIdHelper
()->
endcap
(
id
);
66
}
67
}
68
69
int
70
IdentityHelper::layer_disk
()
const
71
{
72
auto
id
=
m_elem
->identify();
73
if
(
m_isInDet
) {
74
const
InDetDD::SiDetectorElement
* thisElement =
75
static_cast<
const
InDetDD::SiDetectorElement
*
>
(
m_elem
);
76
if
(thisElement->
isPixel
()) {
77
return
getPixelIDHelper
()->
layer_disk
(
id
);
78
}
else
{
79
return
getSCTIDHelper
()->
layer_disk
(
id
);
80
}
81
}
else
{
82
return
getHgtdIdHelper
()->
layer
(
id
);
83
}
84
}
85
86
int
87
IdentityHelper::phi_module
()
const
88
{
89
auto
id
=
m_elem
->identify();
90
if
(
m_isInDet
) {
91
const
InDetDD::SiDetectorElement
* thisElement =
92
static_cast<
const
InDetDD::SiDetectorElement
*
>
(
m_elem
);
93
if
(thisElement->
isPixel
()) {
94
return
getPixelIDHelper
()->
phi_module
(
id
);
95
}
else
{
96
return
getSCTIDHelper
()->
phi_module
(
id
);
97
}
98
}
else
{
99
return
getHgtdIdHelper
()->
phi_module
(
id
);
100
}
101
}
102
103
int
104
IdentityHelper::eta_module
()
const
105
{
106
auto
id
=
m_elem
->identify();
107
if
(
m_isInDet
) {
108
const
InDetDD::SiDetectorElement
* thisElement =
109
static_cast<
const
InDetDD::SiDetectorElement
*
>
(
m_elem
);
110
if
(thisElement->
isPixel
()) {
111
return
getPixelIDHelper
()->
eta_module
(
id
);
112
}
else
{
113
return
getSCTIDHelper
()->
eta_module
(
id
);
114
}
115
}
else
{
116
return
getHgtdIdHelper
()->
eta_module
(
id
);
117
}
118
}
119
120
int
121
IdentityHelper::side
()
const
122
{
123
auto
id
=
m_elem
->identify();
124
if
(
m_isInDet
) {
125
const
InDetDD::SiDetectorElement
* thisElement =
126
static_cast<
const
InDetDD::SiDetectorElement
*
>
(
m_elem
);
127
if
(thisElement->
isPixel
()) {
128
return
0;
129
}
else
{
130
return
getSCTIDHelper
()->
side
(
id
);
131
}
132
}
else
{
133
return
0;
134
}
135
}
136
137
int
138
IdentityHelper::phi_module_max
()
const
139
{
140
auto
id
=
m_elem
->identify();
141
if
(
m_isInDet
) {
142
const
InDetDD::SiDetectorElement
* thisElement =
143
static_cast<
const
InDetDD::SiDetectorElement
*
>
(
m_elem
);
144
if
(thisElement->
isPixel
()) {
145
return
getPixelIDHelper
()->
phi_module_max
(
id
);
146
}
else
{
147
return
getSCTIDHelper
()->
phi_module_max
(
id
);
148
}
149
}
else
{
150
return
getHgtdIdHelper
()->
phi_module_max
(
id
);
151
}
152
}
153
154
int
155
IdentityHelper::eta_module_max
()
const
156
{
157
auto
id
=
m_elem
->identify();
158
if
(
m_isInDet
) {
159
const
InDetDD::SiDetectorElement
* thisElement =
160
static_cast<
const
InDetDD::SiDetectorElement
*
>
(
m_elem
);
161
if
(thisElement->
isPixel
()) {
162
return
getPixelIDHelper
()->
eta_module_max
(
id
);
163
}
else
{
164
return
getSCTIDHelper
()->
eta_module_max
(
id
);
165
}
166
}
else
{
167
return
getHgtdIdHelper
()->
eta_module_max
(
id
);
168
}
169
}
HGTD_DetectorElement.h
HGTD_ID.h
IdentityHelper.h
PixelID.h
This is an Identifier helper class for the Pixel subdetector.
SCT_ID.h
This is an Identifier helper class for the SCT subdetector.
SiDetectorElement.h
SolidStateDetectorElementBase.h
HGTD_ID
This is an Identifier helper class for the HGTD subdetector.
Definition
HGTD_ID.h:47
HGTD_ID::eta_module
int eta_module(const Identifier &id) const
Definition
HGTD_ID.h:491
HGTD_ID::phi_module_max
int phi_module_max(const Identifier &id) const
Definition
HGTD_ID.cxx:101
HGTD_ID::eta_module_max
int eta_module_max(const Identifier &id) const
Definition
HGTD_ID.cxx:120
HGTD_ID::layer
int layer(const Identifier &id) const
Definition
HGTD_ID.h:477
HGTD_ID::endcap
int endcap(const Identifier &id) const
Values of different levels (failure returns 0).
Definition
HGTD_ID.h:470
HGTD_ID::phi_module
int phi_module(const Identifier &id) const
Definition
HGTD_ID.h:484
IdentityHelper::IdentityHelper
IdentityHelper(const InDetDD::SolidStateDetectorElementBase *detElement)
Definition
IdentityHelper.cxx:15
IdentityHelper::getHgtdIdHelper
const HGTD_ID * getHgtdIdHelper() const
Definition
IdentityHelper.cxx:47
IdentityHelper::m_elem
const InDetDD::SolidStateDetectorElementBase * m_elem
Definition
IdentityHelper.h:29
IdentityHelper::side
int side() const
Definition
IdentityHelper.cxx:121
IdentityHelper::phi_module
int phi_module() const
Definition
IdentityHelper.cxx:87
IdentityHelper::bec
int bec() const
Definition
IdentityHelper.cxx:53
IdentityHelper::eta_module_max
int eta_module_max() const
Definition
IdentityHelper.cxx:155
IdentityHelper::getSCTIDHelper
const SCT_ID * getSCTIDHelper() const
Definition
IdentityHelper.cxx:41
IdentityHelper::eta_module
int eta_module() const
Definition
IdentityHelper.cxx:104
IdentityHelper::getPixelIDHelper
const PixelID * getPixelIDHelper() const
Definition
IdentityHelper.cxx:36
IdentityHelper::layer_disk
int layer_disk() const
Definition
IdentityHelper.cxx:70
IdentityHelper::phi_module_max
int phi_module_max() const
Definition
IdentityHelper.cxx:138
IdentityHelper::m_helper
std::variant< const PixelID *, const SCT_ID *, const HGTD_ID * > m_helper
Definition
IdentityHelper.h:30
IdentityHelper::m_isInDet
bool m_isInDet
Definition
IdentityHelper.h:31
InDetDD::HGTD_DetectorElement
Class to hold geometrical description of an HGTD detector element.
Definition
HGTD_DetectorElement.h:40
InDetDD::SiDetectorElement
Class to hold geometrical description of a silicon detector element.
Definition
SiDetectorElement.h:109
InDetDD::SiDetectorElement::isPixel
bool isPixel() const
InDetDD::SolidStateDetectorElementBase
Class to hold geometrical description of a solid state detector element.
Definition
SolidStateDetectorElementBase.h:132
PixelID
This is an Identifier helper class for the Pixel subdetector.
Definition
PixelID.h:69
PixelID::layer_disk
int layer_disk(const Identifier &id) const
Definition
PixelID.h:602
PixelID::eta_module_max
int eta_module_max(const Identifier &id) const
Definition
PixelID.cxx:80
PixelID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0).
Definition
PixelID.h:595
PixelID::eta_module
int eta_module(const Identifier &id) const
Definition
PixelID.h:627
PixelID::phi_module
int phi_module(const Identifier &id) const
Definition
PixelID.h:620
PixelID::phi_module_max
int phi_module_max(const Identifier &id) const
Definition
PixelID.cxx:124
SCT_ID
This is an Identifier helper class for the SCT subdetector.
Definition
SCT_ID.h:68
SCT_ID::phi_module_max
int phi_module_max(const Identifier &id) const
Definition
SCT_ID.cxx:205
SCT_ID::layer_disk
int layer_disk(const Identifier &id) const
Definition
SCT_ID.h:687
SCT_ID::side
int side(const Identifier &id) const
Definition
SCT_ID.h:705
SCT_ID::phi_module
int phi_module(const Identifier &id) const
Definition
SCT_ID.h:693
SCT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0).
Definition
SCT_ID.h:681
SCT_ID::eta_module_max
int eta_module_max(const Identifier &id) const
Definition
SCT_ID.cxx:183
SCT_ID::eta_module
int eta_module(const Identifier &id) const
Definition
SCT_ID.h:699
Generated on
for ATLAS Offline Software by
1.17.0