|
ATLAS Offline Software
|
#include <ITkPixelReadoutManager.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 23 of file ITkPixelReadoutManager.h.
◆ PixelReadoutManager()
InDetDD::ITk::PixelReadoutManager::PixelReadoutManager |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
svc |
|
) |
| |
◆ getColumn()
uint32_t InDetDD::ITk::PixelReadoutManager::getColumn |
( |
Identifier |
diodeId, |
|
|
Identifier |
offlineId |
|
) |
| const |
|
finaloverridevirtual |
Definition at line 191 of file ITkPixelReadoutManager.cxx.
193 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
195 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
198 unsigned int columnsPerFE = p_design->columnsPerCircuit();
212 if (
column >= columnsPerFE) {
213 ATH_MSG_WARNING(
"Computed column number exceeds maximum value: col = " <<
column <<
" (max = " << columnsPerFE <<
")");
214 ATH_MSG_INFO(
"diodeId = "<<diodeId<<
", offlineId= "<<offlineId);
◆ getDiodeType()
Definition at line 53 of file ITkPixelReadoutManager.cxx.
56 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
58 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
71 unsigned int FEs = p_design->numberOfCircuits();
72 unsigned int rowsPerFE = p_design->rowsPerCircuit();
73 unsigned int columnsPerFE = p_design->columnsPerCircuit();
79 if (
row > rowsPerFE - 3 &&
col < columnsPerFE - 2) {
82 if (
col > columnsPerFE - 3 &&
row < rowsPerFE - 2) {
86 if (
row > rowsPerFE - 3 &&
col > columnsPerFE - 3) {
89 }
else if (FEs != 1) {
90 ATH_MSG_WARNING(
"Module with a number of circuits which is not 1 or 4.");
◆ getFE()
uint32_t InDetDD::ITk::PixelReadoutManager::getFE |
( |
Identifier |
diodeId, |
|
|
Identifier |
offlineId |
|
) |
| const |
|
finaloverridevirtual |
Definition at line 153 of file ITkPixelReadoutManager.cxx.
155 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
160 unsigned int FEsPerRow = p_design->numberOfCircuitsPerRow();
161 unsigned int rowsPerFE = p_design->rowsPerCircuit();
162 unsigned int columnsPerFE = p_design->columnsPerCircuit();
172 if (module_phi % 2 == 0) {
173 phi_index = FEsPerRow * rowsPerFE - phi_index - 1;
180 unsigned int FErow =
static_cast<unsigned int>(std::floor(phi_index / rowsPerFE));
181 unsigned int FEcol =
static_cast<unsigned int>(std::floor(
eta_index / columnsPerFE));
◆ getModuleType()
Definition at line 31 of file ITkPixelReadoutManager.cxx.
34 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
36 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
◆ getPixelId()
Identifier InDetDD::ITk::PixelReadoutManager::getPixelId |
( |
Identifier |
offlineId, |
|
|
uint32_t |
FE, |
|
|
uint32_t |
row, |
|
|
uint32_t |
column |
|
) |
| const |
|
finaloverridevirtual |
Definition at line 104 of file ITkPixelReadoutManager.cxx.
106 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
108 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
111 unsigned int FEs = p_design->numberOfCircuits();
112 unsigned int FEsPerRow = p_design->numberOfCircuitsPerRow();
113 unsigned int rowsPerFE = p_design->rowsPerCircuit();
114 unsigned int columnsPerFE = p_design->columnsPerCircuit();
118 if (
row >= rowsPerFE ||
column >= columnsPerFE || FE >= FEs) {
119 ATH_MSG_DEBUG(
"Illegal pixel requested OfflineID: " << std::hex << offlineId << std::dec <<
" FE: " << FE <<
" row: " <<
row <<
" column: " <<
column);
120 ATH_MSG_DEBUG(
"Limits are: FE < " << FEs <<
", row < " << rowsPerFE <<
", column < " << columnsPerFE);
128 phi_index = 2 * rowsPerFE - 1 -
row;
143 if (module_phi % 2 == 0) {
144 phi_index = FEsPerRow * rowsPerFE - phi_index - 1;
145 ATH_MSG_DEBUG(
"Even disk module found, phi module: " << module_phi <<
" swapped phi index to : " << phi_index);
◆ getPixelIdfromHash()
Identifier InDetDD::ITk::PixelReadoutManager::getPixelIdfromHash |
( |
IdentifierHash |
offlineIdHash, |
|
|
uint32_t |
FE, |
|
|
uint32_t |
row, |
|
|
uint32_t |
column |
|
) |
| const |
|
finaloverridevirtual |
◆ getRow()
uint32_t InDetDD::ITk::PixelReadoutManager::getRow |
( |
Identifier |
diodeId, |
|
|
Identifier |
offlineId |
|
) |
| const |
|
finaloverridevirtual |
Definition at line 224 of file ITkPixelReadoutManager.cxx.
226 const PixelModuleDesign *p_design =
static_cast<const PixelModuleDesign *
>(&element->design());
231 unsigned int FEsPerRow = p_design->numberOfCircuitsPerRow();
232 unsigned int rowsPerFE = p_design->rowsPerCircuit();
239 if (module_phi % 2 == 0) {
240 phi_index = FEsPerRow * rowsPerFE - phi_index - 1;
247 if (phi_index >= rowsPerFE) {
248 row = 2 * rowsPerFE - phi_index - 1;
255 if (
row >= rowsPerFE) {
256 ATH_MSG_WARNING(
"Computed row number exceeds maximum value: row = " <<
row <<
"(max = " << rowsPerFE <<
")");
◆ initialize()
StatusCode InDetDD::ITk::PixelReadoutManager::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ 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:
virtual Identifier getPixelId(Identifier offlineId, uint32_t FE, uint32_t row, uint32_t column) const override final
int phi_index(const Identifier &id) const
constexpr uint32_t invalidColumn
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
constexpr uint32_t invalidFrontEnd
std::string PixelModuleTypeName(const PixelModuleType &t)
virtual PixelModuleType getModuleType(Identifier id) const override final
const PixelID * m_idHelper
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
const PixelDetectorManager * m_detManager
Gaudi::Property< std::string > m_detectorName
ServiceHandle< StoreGateSvc > m_detStore
int eta_index(const Identifier &id) const
AthROOTErrorHandlerSvc * svc
virtual uint32_t getColumn(Identifier diodeId, Identifier offlineId) const override final
virtual uint32_t getRow(Identifier diodeId, Identifier offlineId) const override final
constexpr uint32_t invalidRow
virtual PixelDiodeType getDiodeType(Identifier id) const override final
#define ATH_MSG_WARNING(x)
Gaudi::Property< std::string > m_pixelIDName
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.
int phi_module(const Identifier &id) const
std::string PixelDiodeTypeName(const PixelDiodeType &t)
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements : via Identifier