 |
ATLAS Offline Software
|
Go to the documentation of this file.
32 return StatusCode::SUCCESS;
102 if (col > 0 && col < p_design->columnsPerCircuit() - 1) {
103 if (
row >= p_design->
rowsPerCircuit() / 2 - 1 - 6 - 1 && row <= p_design->rowsPerCircuit() / 2 - 1) {
154 unsigned int rowsPerFE = 0;
155 int column_row_offset = 0;
158 column_row_offset = -1;
174 row =
row + column_row_offset;
178 ATH_MSG_DEBUG(
"Illegal pixel requested OfflineID: " << std::hex << offlineId << std::dec <<
" FE: " << FE <<
" row: " <<
row <<
" column: " <<
column);
195 phi_index = columnsPerFE-1-
column;
200 phi_index = rowsPerFE-1-
row;
205 phi_index = rowsPerFE-1-
row;
210 if (FE<FEsPerHalfModule) {
211 phi_index = ((2*rowsPerFE)-1)-
row;
212 eta_index = ((columnsPerFE*FEsPerHalfModule)-1)-(
column+(FE*columnsPerFE));
221 phi_index = 2*rowsPerFE-phi_index-1;
236 if (phi_index>phi_index_max) {
237 ATH_MSG_DEBUG(
"Error! phi_index: " << phi_index <<
" > phi_index_max: " << phi_index_max);
241 uint32_t check_row =
getRow(diodeId, offlineId) + column_row_offset;
243 if (check_FE!=FE || check_row!=
row || check_column!=
column) {
244 ATH_MSG_WARNING(
"identify OfflineID: 0x" << std::hex << offlineId << std::dec <<
" FE: " << FE <<
" row: " <<
row <<
" column: " <<
column <<
" unequal to:");
245 ATH_MSG_WARNING(
"identify PixelID: 0x" << std::hex << diodeId << std::dec <<
" FE: " << check_FE <<
" row: " << check_row <<
" column: " << check_column);
257 return getFE(diodeId, offlineId, element);
272 unsigned int rowsPerFE = 0;
298 phi_index = 2*rowsPerFE-phi_index-1;
310 if (phi_index>=rowsPerFE) {
311 FE = (
int)((FEsPerHalfModule-1)-(
eta_index/columnsPerFE));
336 unsigned int rowsPerFE = 0;
337 int column_offset = 0;
362 phi_index = 2*rowsPerFE-phi_index-1;
385 if ((phi_index>=rowsPerFE)) {
396 if (
column >= (
int)columnsPerFE) {
397 ATH_MSG_ERROR(
"Computed column number exceeds maximum value: col = " <<
column + column_offset <<
" (max = " << columnsPerFE <<
")");
401 return column + column_offset;
415 unsigned int rowsPerFE = 0;
440 phi_index = 2*rowsPerFE-phi_index-1;
460 row = rowsPerFE-1-phi_index;
464 row = rowsPerFE-1-phi_index;
468 if (phi_index>=rowsPerFE) {
469 row = ((2*rowsPerFE)-1)-phi_index;
480 if (
row >= (
int)rowsPerFE) {
481 ATH_MSG_ERROR(
"Computed row number exceeds maximum value: row = " <<
row + row_offset <<
"(max = " << rowsPerFE <<
")");
484 return row + row_offset;
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
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
::StatusCode StatusCode
StatusCode definition for legacy code.
int numberOfCircuits() const
Total number of circuits:
int eta_index(const Identifier &id) const
AthROOTErrorHandlerSvc * svc
PixelReadoutManager(const std::string &name, ISvcLocator *svc)
virtual uint32_t getFE(Identifier diodeId, Identifier offlineId) const override final
virtual uint32_t getRow(Identifier diodeId, Identifier offlineId) const override final
PixelReadoutTechnology getReadoutTechnology() const
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...
virtual Identifier getPixelIdfromHash(IdentifierHash offlineIdHash, uint32_t FE, uint32_t row, uint32_t column) const override final
int rowsPerCircuit() const
Number of cell rows per circuit:
#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
virtual const SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements : via Identifier
virtual PixelDiodeType getDiodeType(Identifier id) const override final
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:
virtual StatusCode initialize() override final