Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef INDET_PIXELMODULEHELPER_H
5 #define INDET_PIXELMODULEHELPER_H
30 static constexpr
unsigned int getPixelMask() {
return MaskUtils::createMask<0,ROW_BITS+COL_BITS+CHIP_BITS>(); }
32 static constexpr
unsigned int getColGroup8Mask() {
return MaskUtils::createMask<ROW_BITS+3,ROW_BITS+COL_BITS+CHIP_BITS>(); }
34 static constexpr
unsigned int getColGroup4Mask() {
return MaskUtils::createMask<ROW_BITS+2,ROW_BITS+COL_BITS+CHIP_BITS>(); }
36 static constexpr
unsigned int getChipMask() {
return MaskUtils::createMask<ROW_BITS+COL_BITS,ROW_BITS+COL_BITS+CHIP_BITS>(); }
45 if (pixelModuleDesign) {
163 if (mask_index !=0) {
165 throw std::runtime_error(
"invalid key");
181 column_end =
columns() - column_end -1;
214 return std::array<unsigned int,4>{
row,
row + 1,
static constexpr unsigned int MASKS_SIZE
unsigned int nSensorColumns() const
Return the number of offline columns.
static constexpr unsigned int getChip(unsigned int key)
Get the column index from a full key.
int columns() const
Number of cell columns per module:
unsigned short m_columnsPerCircuit
Helper class to convert between offline column, row and hardware chip, column, row coordinates.
int rows() const
Number of cell rows per module:
std::array< unsigned int, 4 > offlineRange(unsigned int key) const
Function to return offline column and row ranges matching the defect-area of the given key (used for ...
bool swapOfflineRowsColumns() const
unsigned short m_sensorRows
@ u
Enums for curvilinear frames.
virtual double etaPitch() const
Pitch in eta direction.
unsigned short m_rowsPerCircuit
static constexpr unsigned int getColumn(unsigned int key)
Get the column index from a full key.
unsigned char m_circuitsPerRow
virtual double phiPitch() const
Pitch in phi direction.
static constexpr std::array< unsigned short, 2 > N_COLS_PER_GROUP
static constexpr unsigned int getColGroup4Mask()
static constexpr unsigned int makeKey(unsigned int mask_sel, unsigned int chip, unsigned int col, unsigned int row=0u)
Create a key from mask, chip, column and row indices.
bool isMatchingDefect(unsigned int key_ref, unsigned int key_test) const
Test whether the given packed hardware coordinates match the given defect.
int numberOfCircuitsPerColumn() const
Number of circuits per column:
unsigned char m_circuitsPerColumn
static constexpr unsigned int getColGroup8Mask()
float columnPitch() const
unsigned int hardwareCoordinates(unsigned int row, unsigned int column) const
compute "hardware" coordinates from offline coordinates.
unsigned short m_sensorColumns
int numberOfCircuitsPerRow() const
Number of circuits per row:
bool m_swapOfflineRowsColumns
static constexpr unsigned int getRow(unsigned int key)
Get the row index from a full key.
unsigned int rows() const
std::conditional<(N_MASKS >0), std::array< unsigned int, MASKS_SIZE >, Empty >::type m_masks
the masks for this helper.
unsigned int columnsPerCircuit() const
int rowsPerCircuit() const
Number of cell rows per circuit:
unsigned int nCells() const
Return total number of pixels per module.
static constexpr unsigned int getChipMask()
unsigned int rowsPerCircuit() const
unsigned int nSensorRows() const
Return the number of offline rows.
bool isOverlapping(unsigned int key_ref, unsigned int key_test) const
Test whether a single cell (e.g.
PixelModuleHelper(const InDetDD::SiDetectorDesign &design)
static constexpr unsigned int getMaskIdx(unsigned int key)
Get the mask index from a full key.
Helper class to create keys for defects described by chip, column and row indices,...
unsigned int nElements(unsigned int mask_i) const
return the maximum number of unique mask (or group) defects per module.
unsigned int circuitsPerRow() const
unsigned int circuitsPerColumn() const
setBGCode setTAP setLVL2ErrorBits bool
int columnsPerCircuit() const
Number of cell columns per circuit:
static constexpr unsigned int getPixelMask()
unsigned int columns() const