![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
34 return StatusCode::SUCCESS;
44 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
66 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
85 if (
row > rowsPerFE - 3 &&
col < columnsPerFE - 2) {
88 if (
col > columnsPerFE - 3 &&
row < rowsPerFE - 2) {
92 if (
row > rowsPerFE - 3 &&
col > columnsPerFE - 3) {
95 }
else if (FEs != 1) {
96 ATH_MSG_WARNING(
"Module with a number of circuits which is not 1 or 4.");
121 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
133 if (
row >= rowsPerFE ||
column >= columnsPerFE || FE >= FEs) {
134 ATH_MSG_DEBUG(
"Illegal pixel requested OfflineID: " << std::hex << offlineId << std::dec <<
" FE: " << FE <<
" row: " <<
row <<
" column: " <<
column);
135 ATH_MSG_DEBUG(
"Limits are: FE < " << FEs <<
", row < " << rowsPerFE <<
", column < " << columnsPerFE);
144 phi_index = 2 * rowsPerFE - 1 -
row;
159 if (module_phi % 2 == 0) {
160 phi_index = FEsPerRow * rowsPerFE - phi_index - 1;
161 ATH_MSG_DEBUG(
"Even disk module found, phi module: " << module_phi <<
" swapped phi index to : " << phi_index);
175 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
193 if (module_phi % 2 == 0) {
194 phi_index = FEsPerRow * rowsPerFE - phi_index - 1;
202 unsigned int FErow =
static_cast<unsigned int>(std::floor(phi_index / rowsPerFE));
203 unsigned int FEcol =
static_cast<unsigned int>(std::floor(
eta_index / columnsPerFE));
218 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
238 if (
column >= columnsPerFE) {
239 ATH_MSG_ERROR(
"Computed column number exceeds maximum value: col = " <<
column <<
" (max = " << columnsPerFE <<
")");
253 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
266 if (module_phi % 2 == 0) {
267 phi_index = FEsPerRow * rowsPerFE - phi_index - 1;
275 if (phi_index >= rowsPerFE) {
276 row = 2 * rowsPerFE - phi_index - 1;
284 if (
row >= rowsPerFE) {
285 ATH_MSG_ERROR(
"Computed row number exceeds maximum value: row = " <<
row <<
"(max = " << rowsPerFE <<
")");
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
virtual Identifier getPixelId(Identifier offlineId, uint32_t FE, uint32_t row, uint32_t column) const override final
int phi_index(const Identifier &id) const
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
virtual Identifier getPixelIdfromHash(IdentifierHash offlineIdHash, uint32_t FE, uint32_t row, uint32_t column) const override final
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
virtual StatusCode initialize() override final
::StatusCode StatusCode
StatusCode definition for legacy code.
int numberOfCircuits() const
Total number of circuits:
Gaudi::Property< std::string > m_detectorName
ServiceHandle< StoreGateSvc > m_detStore
int eta_index(const Identifier &id) const
AthROOTErrorHandlerSvc * svc
int numberOfCircuitsPerRow() const
Number of circuits per row:
virtual uint32_t getColumn(Identifier diodeId, Identifier offlineId) const override final
PixelReadoutTechnology getReadoutTechnology() const
virtual uint32_t getRow(Identifier diodeId, Identifier offlineId) const override final
virtual PixelDiodeType getDiodeType(Identifier id) const override final
virtual uint32_t getFE(Identifier diodeId, Identifier offlineId) const override final
int rowsPerCircuit() const
Number of cell rows per circuit:
#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.
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
int phi_module(const Identifier &id) const
int columnsPerCircuit() const
Number of cell columns per circuit:
PixelReadoutManager(const std::string &name, ISvcLocator *svc)
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements : via Identifier