|
ATLAS Offline Software
|
#include <PixelReadoutManager.h>
|
| PixelReadoutManager (const std::string &name, ISvcLocator *svc) |
|
virtual StatusCode | initialize () override final |
|
virtual PixelModuleType | getModuleType (Identifier id) const override final |
|
virtual PixelDiodeType | getDiodeType (Identifier id) const override final |
|
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 | getColumn (Identifier diodeId, Identifier offlineId) const override final |
|
virtual uint32_t | getRow (Identifier diodeId, Identifier offlineId) const override final |
|
Definition at line 18 of file PixelReadoutManager.h.
◆ PixelReadoutManager()
InDetDD::PixelReadoutManager::PixelReadoutManager |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
svc |
|
) |
| |
◆ getColumn()
Definition at line 308 of file PixelReadoutManager.cxx.
312 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
318 unsigned int columnsPerFE = p_design->columnsPerCircuit();
319 unsigned int rowsPerFE = 0;
320 int column_offset = 0;
322 rowsPerFE = p_design->rowsPerCircuit();
326 rowsPerFE = p_design->rowsPerCircuit()/2+4;
345 phi_index = 2*rowsPerFE-phi_index-1;
368 if ((phi_index>=rowsPerFE)) {
379 if (
column >= (
int)columnsPerFE) {
380 ATH_MSG_ERROR(
"Computed column number exceeds maximum value: col = " <<
column + column_offset <<
" (max = " << columnsPerFE <<
")");
384 return column + column_offset;
◆ getDiodeType()
Definition at line 71 of file PixelReadoutManager.cxx.
80 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
87 if (p_design->numberOfCircuits() == 2) {
88 if (
col == 0 ||
col == p_design->columnsPerCircuit() - 1) {
97 if (
col > 0 && col < p_design->columnsPerCircuit() - 1) {
98 if (
row >= p_design->rowsPerCircuit() / 2 - 1 - 6 - 1 && row <= p_design->rowsPerCircuit() / 2 - 1) {
99 if ((
row - (p_design->rowsPerCircuit() / 2 - 1 - 6) + 1) % 2 + 1 == 1) {
102 if ((
row - (p_design->rowsPerCircuit() / 2 - 1 - 6) + 1) % 2 + 1 == 2) {
109 if (
col == 0 ||
col==p_design->columnsPerCircuit() - 1) {
110 if (
row >= p_design->rowsPerCircuit() / 2 - 1 - 6 - 1) {
116 ATH_MSG_WARNING(
"Pixel Type : the col number should be 0-" << p_design->columnsPerCircuit() <<
", not " <<
col);
◆ getFE()
Definition at line 243 of file PixelReadoutManager.cxx.
247 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
253 unsigned int columnsPerFE = p_design->columnsPerCircuit();
254 unsigned int FEsPerHalfModule = p_design->numberOfCircuits();
255 unsigned int rowsPerFE = 0;
257 rowsPerFE = p_design->rowsPerCircuit();
260 rowsPerFE = p_design->rowsPerCircuit()/2+4;
281 phi_index = 2*rowsPerFE-phi_index-1;
293 if (phi_index>=rowsPerFE) {
294 FE = (
int)((FEsPerHalfModule-1)-(
eta_index/columnsPerFE));
◆ getModuleType()
Definition at line 36 of file PixelReadoutManager.cxx.
40 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
51 if (p_design->numberOfCircuits() == 2) {
◆ getPixelId()
Identifier InDetDD::PixelReadoutManager::getPixelId |
( |
Identifier |
offlineId, |
|
|
uint32_t |
FE, |
|
|
uint32_t |
row, |
|
|
uint32_t |
column |
|
) |
| const |
|
finaloverridevirtual |
Definition at line 133 of file PixelReadoutManager.cxx.
139 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
145 unsigned int columnsPerFE = p_design->columnsPerCircuit();
146 unsigned int FEsPerHalfModule = p_design->numberOfCircuits();
147 unsigned int rowsPerFE = 0;
148 int column_row_offset = 0;
150 rowsPerFE = p_design->rowsPerCircuit();
151 column_row_offset = -1;
154 rowsPerFE = p_design->rowsPerCircuit()/2+4;
164 row =
row + column_row_offset;
168 ATH_MSG_DEBUG(
"Illegal pixel requested OfflineID: " << std::hex << offlineId << std::dec <<
" FE: " << FE <<
" row: " <<
row <<
" column: " <<
column);
185 phi_index = columnsPerFE-1-
column;
190 phi_index = rowsPerFE-1-
row;
195 phi_index = rowsPerFE-1-
row;
200 if (FE<FEsPerHalfModule) {
201 phi_index = ((2*rowsPerFE)-1)-
row;
202 eta_index = ((columnsPerFE*FEsPerHalfModule)-1)-(
column+(FE*columnsPerFE));
211 phi_index = 2*rowsPerFE-phi_index-1;
226 if (phi_index>phi_index_max) {
227 ATH_MSG_DEBUG(
"Error! phi_index: " << phi_index <<
" > phi_index_max: " << phi_index_max);
231 uint32_t check_row =
getRow(diodeId, offlineId) + column_row_offset;
233 if (check_FE!=FE || check_row!=
row || check_column!=
column) {
234 ATH_MSG_WARNING(
"identify OfflineID: 0x" << std::hex << offlineId << std::dec <<
" FE: " << FE <<
" row: " <<
row <<
" column: " <<
column <<
" unequal to:");
235 ATH_MSG_WARNING(
"identify PixelID: 0x" << std::hex << diodeId << std::dec <<
" FE: " << check_FE <<
" row: " << check_row <<
" column: " << check_column);
◆ getPixelIdfromHash()
Identifier InDetDD::PixelReadoutManager::getPixelIdfromHash |
( |
IdentifierHash |
offlineIdHash, |
|
|
uint32_t |
FE, |
|
|
uint32_t |
row, |
|
|
uint32_t |
column |
|
) |
| const |
|
finaloverridevirtual |
◆ getRow()
Definition at line 388 of file PixelReadoutManager.cxx.
392 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
398 unsigned int rowsPerFE = 0;
401 rowsPerFE = p_design->rowsPerCircuit();
405 rowsPerFE = p_design->rowsPerCircuit()/2+4;
423 phi_index = 2*rowsPerFE-phi_index-1;
443 row = rowsPerFE-1-phi_index;
447 row = rowsPerFE-1-phi_index;
451 if (phi_index>=rowsPerFE) {
452 row = ((2*rowsPerFE)-1)-phi_index;
463 if (
row >= (
int)rowsPerFE) {
464 ATH_MSG_ERROR(
"Computed row number exceeds maximum value: row = " <<
row + row_offset <<
"(max = " << rowsPerFE <<
")");
467 return row + row_offset;
◆ initialize()
StatusCode InDetDD::PixelReadoutManager::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ m_detManager
◆ m_detStore
◆ m_idHelper
The documentation for this class was generated from the following files:
int phi_index(const Identifier &id) const
ServiceHandle< StoreGateSvc > m_detStore
virtual Identifier getPixelId(Identifier offlineId, uint32_t FE, uint32_t row, uint32_t column) const override final
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
int phi_index_max(const Identifier &id) const
int eta_index_max(const Identifier &id) const
int eta_index(const Identifier &id) const
AthROOTErrorHandlerSvc * svc
virtual uint32_t getFE(Identifier diodeId, Identifier offlineId) const override final
virtual uint32_t getRow(Identifier diodeId, Identifier offlineId) const override final
bool is_dbm(const Identifier &id) const
Test for dbm - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for gene...
#define ATH_MSG_WARNING(x)
virtual uint32_t getColumn(Identifier diodeId, Identifier offlineId) const override final
const PixelDetectorManager * m_detManager
const PixelID * m_idHelper
Identifier pixel_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int phi_index, int eta_index) const
For an individual pixel.
virtual PixelModuleType getModuleType(Identifier id) const override final
int phi_module(const Identifier &id) const
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements : via Identifier