#include <ITkPixelReadoutManager.h>
|
| | PixelReadoutManager (const std::string &name, ISvcLocator *svc) |
| virtual StatusCode | initialize () override final |
| virtual PixelModuleType | getModuleType (Identifier id) const override final |
| PixelModuleType | getModuleType (Identifier id, const SiDetectorElement *element) const |
| virtual PixelDiodeType | getDiodeType (Identifier id) const override final |
| virtual PixelDiodeType | getDiodeType (Identifier id, const SiDetectorElement *element) const override |
| virtual Identifier | getPixelIdfromHash (IdentifierHash offlineIdHash, uint32_t FE, uint32_t row, uint32_t column) const override final |
| virtual Identifier | getPixelId (Identifier offlineId, uint32_t FE, uint32_t row, uint32_t column) const override final |
| virtual uint32_t | getFE (Identifier diodeId, Identifier offlineId) const override final |
| virtual uint32_t | getFE (Identifier diodeId, Identifier offlineId, const SiDetectorElement *element) const override final |
| virtual uint32_t | getColumn (Identifier diodeId, Identifier offlineId) const override final |
| uint32_t | getColumn (Identifier diodeId, Identifier offlineId, const SiDetectorElement *element) const |
| virtual uint32_t | getRow (Identifier diodeId, Identifier offlineId) const override final |
| uint32_t | getRow (Identifier diodeId, Identifier offlineId, const SiDetectorElement *element) const |
Definition at line 22 of file ITkPixelReadoutManager.h.
◆ PixelReadoutManager()
| InDetDD::ITk::PixelReadoutManager::PixelReadoutManager |
( |
const std::string & | name, |
|
|
ISvcLocator * | svc ) |
◆ getColumn() [1/2]
| uint32_t InDetDD::ITk::PixelReadoutManager::getColumn |
( |
Identifier | diodeId, |
|
|
Identifier | offlineId ) const |
|
finaloverridevirtual |
Definition at line 210 of file ITkPixelReadoutManager.cxx.
211 {
212
213 const SiDetectorElement *element =
m_detManager->getDetectorElement(offlineId);
214 return getColumn(diodeId, offlineId, element);
215 }
const PixelDetectorManager * m_detManager
virtual uint32_t getColumn(Identifier diodeId, Identifier offlineId) const override final
◆ getColumn() [2/2]
Definition at line 218 of file ITkPixelReadoutManager.cxx.
220 {
221
222 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->
design());
224 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
226 }
227 unsigned int columnsPerFE = p_design->columnsPerCircuit();
229
230
231
233 if (eta_index >= columnsPerFE) {
235 } else {
237 }
238
239
240
241 if (column >= columnsPerFE) {
242 ATH_MSG_WARNING(
"Computed column number exceeds maximum value: col = " << column <<
" (max = " << columnsPerFE <<
")");
243 ATH_MSG_INFO(
"diodeId = "<<diodeId<<
", offlineId= "<<offlineId);
247 }
249 }
#define ATH_MSG_WARNING(x)
virtual PixelModuleType getModuleType(Identifier id) const override final
virtual PixelDiodeType getDiodeType(Identifier id) const override final
const PixelID * m_idHelper
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
std::string PixelModuleTypeName(const PixelModuleType &t)
std::string PixelDiodeTypeName(const PixelDiodeType &t)
constexpr uint32_t invalidColumn
◆ getDiodeType() [1/2]
◆ getDiodeType() [2/2]
Definition at line 64 of file ITkPixelReadoutManager.cxx.
65 {
66
67 const Identifier wafer_id = element->
identify();
68
69 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->
design());
71 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
73 }
74
77
80 }
81
82
83
84
85 unsigned int FEs = p_design->numberOfCircuits();
86 unsigned int rowsPerFE = p_design->rowsPerCircuit();
87 unsigned int columnsPerFE = p_design->columnsPerCircuit();
88
89 if (FEs == 4) {
90
91
92
93 if (row > rowsPerFE - 3 && col < columnsPerFE - 2) {
95 }
96 if (col > columnsPerFE - 3 && row < rowsPerFE - 2) {
98 }
99
100 if (row > rowsPerFE - 3 && col > columnsPerFE - 3) {
102 }
103 } else if (FEs != 1) {
104 ATH_MSG_WARNING(
"Module with a number of circuits which is not 1 or 4.");
106 }
108 }
virtual uint32_t getRow(Identifier diodeId, Identifier offlineId) const override final
virtual Identifier identify() const override final
identifier of this detector element (inline)
constexpr uint32_t invalidRow
row
Appending html table to final .html summary file.
◆ getFE() [1/2]
| uint32_t InDetDD::ITk::PixelReadoutManager::getFE |
( |
Identifier | diodeId, |
|
|
Identifier | offlineId ) const |
|
finaloverridevirtual |
Definition at line 165 of file ITkPixelReadoutManager.cxx.
165 {
166 const SiDetectorElement *element =
m_detManager->getDetectorElement(offlineId);
167 return getFE(diodeId, offlineId, element);
168 }
virtual uint32_t getFE(Identifier diodeId, Identifier offlineId) const override final
◆ getFE() [2/2]
Definition at line 172 of file ITkPixelReadoutManager.cxx.
174 {
175 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->
design());
179 }
180 unsigned int FEsPerRow = p_design->numberOfCircuitsPerRow();
181 unsigned int rowsPerFE = p_design->rowsPerCircuit();
182 unsigned int columnsPerFE = p_design->columnsPerCircuit();
183
184
185
190
191 int module_phi =
m_idHelper->phi_module(offlineId);
192 if (module_phi % 2 == 0) {
194 }
195 }
196
197
198
199
200 unsigned int FErow = static_cast<unsigned int>(std::floor(phi_index / rowsPerFE));
201 unsigned int FEcol = static_cast<unsigned int>(std::floor(eta_index / columnsPerFE));
202 if (FErow > 0) {
203 return 2 + FEcol;
204 } else {
205 return FEcol;
206 }
207 }
constexpr uint32_t invalidFrontEnd
◆ getModuleType() [1/2]
◆ getModuleType() [2/2]
Definition at line 35 of file ITkPixelReadoutManager.cxx.
36 {
37
38 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->
design());
40 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
42 }
43
46 }
47
48 if (std::abs(
m_idHelper->barrel_ec(
id)) == 2) {
50 }
51
53 }
◆ getPixelId()
| Identifier InDetDD::ITk::PixelReadoutManager::getPixelId |
( |
Identifier | offlineId, |
|
|
uint32_t | FE, |
|
|
uint32_t | row, |
|
|
uint32_t | column ) const |
|
finaloverridevirtual |
Definition at line 117 of file ITkPixelReadoutManager.cxx.
117 {
118 const SiDetectorElement *element =
m_detManager->getDetectorElement(offlineId);
119 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->
design());
121 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
122 return {};
123 }
124 unsigned int FEs = p_design->numberOfCircuits();
125 unsigned int FEsPerRow = p_design->numberOfCircuitsPerRow();
126 unsigned int rowsPerFE = p_design->rowsPerCircuit();
127 unsigned int columnsPerFE = p_design->columnsPerCircuit();
128
129
130
131 if (row >= rowsPerFE || column >= columnsPerFE || FE >= FEs) {
132 ATH_MSG_DEBUG(
"Illegal pixel requested OfflineID: " << std::hex << offlineId << std::dec <<
" FE: " << FE <<
" row: " << row <<
" column: " << column);
133 ATH_MSG_DEBUG(
"Limits are: FE < " << FEs <<
", row < " << rowsPerFE <<
", column < " << columnsPerFE);
134 return {};
135 }
136
137
138
140 if (FE >= 2) {
142 } else {
144 }
145 if (FE % 2 == 1) {
147 } else {
149 }
150
151
154
155 int module_phi =
m_idHelper->phi_module(offlineId);
156 if (module_phi % 2 == 0) {
158 ATH_MSG_DEBUG(
"Even disk module found, phi module: " << module_phi <<
" swapped phi index to : " << phi_index);
159 }
160 }
161 return m_idHelper->pixel_id(offlineId, phi_index, eta_index);
162 }
◆ getPixelIdfromHash()
| Identifier InDetDD::ITk::PixelReadoutManager::getPixelIdfromHash |
( |
IdentifierHash | offlineIdHash, |
|
|
uint32_t | FE, |
|
|
uint32_t | row, |
|
|
uint32_t | column ) const |
|
finaloverridevirtual |
Definition at line 110 of file ITkPixelReadoutManager.cxx.
111 {
113 }
virtual Identifier getPixelId(Identifier offlineId, uint32_t FE, uint32_t row, uint32_t column) const override final
◆ getRow() [1/2]
| uint32_t InDetDD::ITk::PixelReadoutManager::getRow |
( |
Identifier | diodeId, |
|
|
Identifier | offlineId ) const |
|
finaloverridevirtual |
◆ getRow() [2/2]
Definition at line 259 of file ITkPixelReadoutManager.cxx.
261 {
262
263 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->
design());
267 }
268 unsigned int FEsPerRow = p_design->numberOfCircuitsPerRow();
269 unsigned int rowsPerFE = p_design->rowsPerCircuit();
271
274
275 int module_phi =
m_idHelper->phi_module(offlineId);
276 if (module_phi % 2 == 0) {
278 }
279 }
280
281
282
284 if (phi_index >= rowsPerFE) {
286 } else {
288 }
289
290
291
292 if (row >= rowsPerFE) {
293 ATH_MSG_WARNING(
"Computed row number exceeds maximum value: row = " << row <<
"(max = " << rowsPerFE <<
")");
295 }
297 }
◆ initialize()
| StatusCode InDetDD::ITk::PixelReadoutManager::initialize |
( |
| ) |
|
|
finaloverridevirtual |
Definition at line 21 of file ITkPixelReadoutManager.cxx.
21 {
26 return StatusCode::SUCCESS;
27 }
#define ATH_CHECK
Evaluate an expression and check for errors.
ServiceHandle< StoreGateSvc > m_detStore
Gaudi::Property< std::string > m_detectorName
Gaudi::Property< std::string > m_pixelIDName
◆ m_detectorName
| Gaudi::Property<std::string> InDetDD::ITk::PixelReadoutManager::m_detectorName {this, "DetectorName", "ITkPixel", "Pixel detector name"} |
|
private |
◆ m_detManager
◆ m_detStore
◆ m_idHelper
| const PixelID* InDetDD::ITk::PixelReadoutManager::m_idHelper {} |
|
private |
◆ m_pixelIDName
| Gaudi::Property<std::string> InDetDD::ITk::PixelReadoutManager::m_pixelIDName {this, "PixelIDName", "PixelID", "Pixel ID name"} |
|
private |
The documentation for this class was generated from the following files: