ATLAS Offline Software
Loading...
Searching...
No Matches
IdentityHelper Class Reference

#include <IdentityHelper.h>

Collaboration diagram for IdentityHelper:

Public Member Functions

 IdentityHelper (const InDetDD::SolidStateDetectorElementBase *detElement)
int bec () const
int layer_disk () const
int phi_module () const
int eta_module () const
int side () const
int phi_module_max () const
int eta_module_max () const

Private Member Functions

const PixelIDgetPixelIDHelper () const
const SCT_IDgetSCTIDHelper () const
const HGTD_IDgetHgtdIdHelper () const

Private Attributes

const InDetDD::SolidStateDetectorElementBasem_elem
std::variant< const PixelID *, const SCT_ID *, const HGTD_ID * > m_helper
bool m_isInDet

Detailed Description

Definition at line 15 of file IdentityHelper.h.

Constructor & Destructor Documentation

◆ IdentityHelper()

IdentityHelper::IdentityHelper ( const InDetDD::SolidStateDetectorElementBase * detElement)

Definition at line 15 of file IdentityHelper.cxx.

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}
const InDetDD::SolidStateDetectorElementBase * m_elem
std::variant< const PixelID *, const SCT_ID *, const HGTD_ID * > m_helper

Member Function Documentation

◆ bec()

int IdentityHelper::bec ( ) const

Definition at line 53 of file IdentityHelper.cxx.

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}
int endcap(const Identifier &id) const
Values of different levels (failure returns 0).
Definition HGTD_ID.h:470
const HGTD_ID * getHgtdIdHelper() const
const SCT_ID * getSCTIDHelper() const
const PixelID * getPixelIDHelper() const
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0).
Definition PixelID.h:595
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0).
Definition SCT_ID.h:681

◆ eta_module()

int IdentityHelper::eta_module ( ) const

Definition at line 104 of file IdentityHelper.cxx.

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}
int eta_module(const Identifier &id) const
Definition HGTD_ID.h:491
int eta_module(const Identifier &id) const
Definition PixelID.h:627
int eta_module(const Identifier &id) const
Definition SCT_ID.h:699

◆ eta_module_max()

int IdentityHelper::eta_module_max ( ) const

Definition at line 155 of file IdentityHelper.cxx.

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}
int eta_module_max(const Identifier &id) const
Definition HGTD_ID.cxx:120
int eta_module_max(const Identifier &id) const
Definition PixelID.cxx:80
int eta_module_max(const Identifier &id) const
Definition SCT_ID.cxx:183

◆ getHgtdIdHelper()

const HGTD_ID * IdentityHelper::getHgtdIdHelper ( ) const
private

Definition at line 47 of file IdentityHelper.cxx.

48{
49 return std::get<const HGTD_ID*>(m_helper);
50}

◆ getPixelIDHelper()

const PixelID * IdentityHelper::getPixelIDHelper ( ) const
private

Definition at line 36 of file IdentityHelper.cxx.

37{
38 return std::get<const PixelID*>(m_helper);
39}

◆ getSCTIDHelper()

const SCT_ID * IdentityHelper::getSCTIDHelper ( ) const
private

Definition at line 41 of file IdentityHelper.cxx.

42{
43 return std::get<const SCT_ID*>(m_helper);
44}

◆ layer_disk()

int IdentityHelper::layer_disk ( ) const

Definition at line 70 of file IdentityHelper.cxx.

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}
int layer(const Identifier &id) const
Definition HGTD_ID.h:477
int layer_disk(const Identifier &id) const
Definition PixelID.h:602
int layer_disk(const Identifier &id) const
Definition SCT_ID.h:687

◆ phi_module()

int IdentityHelper::phi_module ( ) const

Definition at line 87 of file IdentityHelper.cxx.

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}
int phi_module(const Identifier &id) const
Definition HGTD_ID.h:484
int phi_module(const Identifier &id) const
Definition PixelID.h:620
int phi_module(const Identifier &id) const
Definition SCT_ID.h:693

◆ phi_module_max()

int IdentityHelper::phi_module_max ( ) const

Definition at line 138 of file IdentityHelper.cxx.

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}
int phi_module_max(const Identifier &id) const
Definition HGTD_ID.cxx:101
int phi_module_max(const Identifier &id) const
Definition PixelID.cxx:124
int phi_module_max(const Identifier &id) const
Definition SCT_ID.cxx:205

◆ side()

int IdentityHelper::side ( ) const

Definition at line 121 of file IdentityHelper.cxx.

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}
int side(const Identifier &id) const
Definition SCT_ID.h:705

Member Data Documentation

◆ m_elem

const InDetDD::SolidStateDetectorElementBase* IdentityHelper::m_elem
private

Definition at line 29 of file IdentityHelper.h.

◆ m_helper

std::variant<const PixelID*, const SCT_ID*, const HGTD_ID*> IdentityHelper::m_helper
private

Definition at line 30 of file IdentityHelper.h.

◆ m_isInDet

bool IdentityHelper::m_isInDet
private

Definition at line 31 of file IdentityHelper.h.


The documentation for this class was generated from the following files: