|
ATLAS Offline Software
|
Go to the documentation of this file.
27 return StatusCode::SUCCESS;
36 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
58 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
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.");
108 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
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);
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));
195 ATH_MSG_ERROR(
"Non-RD53 readout technologies not supported!");
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);
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 <<
")");
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
constexpr uint32_t invalidColumn
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
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
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
constexpr uint32_t invalidRow
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.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
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)
std::string PixelDiodeTypeName(const PixelDiodeType &t)
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements : via Identifier