ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Static Protected Member Functions | Private Attributes | List of all members
InDet::PixelModuleHelper Class Reference

Helper class to convert between offline column, row and hardware chip, column, row coordinates. More...

#include <PixelModuleHelper.h>

Inheritance diagram for InDet::PixelModuleHelper:
Collaboration diagram for InDet::PixelModuleHelper:

Public Types

using KEY_TYPE = unsigned int
 

Public Member Functions

 PixelModuleHelper (const InDetDD::SiDetectorDesign &design)
 
std::array< unsigned int, N_MASKSmasks () const
 
 operator bool () const
 
unsigned int columns () const
 
unsigned int rows () const
 
unsigned int columnsPerCircuit () const
 
unsigned int rowsPerCircuit () const
 
unsigned int circuitsPerColumn () const
 
unsigned int circuitsPerRow () const
 
float columnPitch () const
 
float rowPitch () const
 
unsigned int hardwareCoordinates (unsigned int row, unsigned int column) const
 compute "hardware" coordinates from offline coordinates. More...
 
std::pair< unsigned int, unsigned int > offlineCoordinates (unsigned int key) const
 compute offline coordinates from "hardware" coordinates More...
 
unsigned int nCells () const
 Return total number of pixels per module. More...
 
unsigned int nSensorColumns () const
 Return the number of offline columns. More...
 
unsigned int nSensorRows () const
 Return the number of offline rows. More...
 
unsigned int nElements (unsigned int mask_i) const
 return the maximum number of unique mask (or group) defects per module. More...
 
std::array< unsigned int, 4 > offlineRange (const std::pair< unsigned int, unsigned int > &range) const
 Function to return offline column and row ranges matching the defect-area of the given key (used for histogramming) More...
 
bool swapOfflineRowsColumns () const
 

Static Public Member Functions

static constexpr unsigned int getPixelMask ()
 
static constexpr unsigned int getColGroup8Mask ()
 
static constexpr unsigned int getColGroup4Mask ()
 
static constexpr unsigned int getChipMask ()
 
static constexpr unsigned int nMasks ()
 
static constexpr unsigned int makeKey (bool is_range, unsigned int chip, unsigned int col, unsigned int row=0u)
 Create a key from mask, chip, column and row indices. More...
 
static constexpr unsigned int getColumn (unsigned int key)
 Get the column index from a full key. More...
 
static constexpr unsigned int getRow (unsigned int key)
 Get the row index from a full key. More...
 
static constexpr unsigned int getLimitRowMax ()
 Get the maximum row value. More...
 
static constexpr unsigned int getLimitColumnMax ()
 Get the maximum row value. More...
 
static constexpr unsigned int getChip (unsigned int key)
 Get the column index from a full key. More...
 
static constexpr unsigned int getDefectType (unsigned int key)
 Get an associated defect type. More...
 
static constexpr unsigned int getDefectTypeComponent (unsigned int key)
 Get key component of an associated defect type. More...
 
static constexpr unsigned int makeDefectTypeKey (unsigned int defect_type)
 Make the key component representing the an associated defect type. More...
 
static constexpr bool isRangeKey (unsigned int key)
 Test whether a key is a range key. More...
 
static constexpr unsigned int makeRangeKey (unsigned int key)
 Turn a key into a range key. More...
 
static constexpr unsigned int makeBaseKey (unsigned int key)
 Return the key with the range flag removed. More...
 
static constexpr std::pair< unsigned int, unsigned int > makeRangeForMask (unsigned int key, unsigned int mask)
 Return a key pair marking the beginning and the end of the range for the given mask and key. More...
 
static constexpr bool isMatchingDefect (unsigned int defect_key, unsigned int key)
 Convenience method to check whether the key matches the defect. More...
 

Static Public Attributes

static constexpr std::array< unsigned short, 2 > N_COLS_PER_GROUP
 
static constexpr unsigned int N_MASKS =3
 
static constexpr unsigned int ROW_BITS
 
static constexpr unsigned int COL_BITS
 
static constexpr unsigned int CHIP_BITS
 
static constexpr unsigned int RANGE_FLAG_BITS
 
static constexpr unsigned int TYPE_BITS
 
static constexpr unsigned int ROW_SHIFT
 
static constexpr unsigned int COL_SHIFT
 
static constexpr unsigned int CHIP_SHIFT
 
static constexpr unsigned int RANGE_FLAG_SHIFT
 
static constexpr unsigned int TYPE_SHIFT
 
static constexpr unsigned int ROW_MASK
 
static constexpr unsigned int COL_MASK
 
static constexpr unsigned int CHIP_MASK
 
static constexpr unsigned int RANGE_FLAG_MASK
 
static constexpr unsigned int TYPE_MASK
 

Static Protected Member Functions

static constexpr unsigned int makeKeyPart ([[maybe_unused]] unsigned int val)
 Convenience method to create part of a key. More...
 

Private Attributes

unsigned short m_sensorRows =0
 
unsigned short m_sensorColumns =0
 
unsigned short m_rows = 0
 
unsigned short m_columns = 0
 
unsigned short m_rowsPerCircuit = 0
 
unsigned short m_columnsPerCircuit = 0
 
unsigned char m_circuitsPerRow = 0
 
unsigned char m_circuitsPerColumn = 0
 
float m_columnPitch = 0
 
float m_rowPitch = 0
 
bool m_rectangularPixels = false
 
bool m_swapOfflineRowsColumns =false
 

Detailed Description

Helper class to convert between offline column, row and hardware chip, column, row coordinates.

Definition at line 16 of file PixelModuleHelper.h.

Member Typedef Documentation

◆ KEY_TYPE

using InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::KEY_TYPE = unsigned int
inherited

Definition at line 57 of file ModuleKeyHelper.h.

Constructor & Destructor Documentation

◆ PixelModuleHelper()

InDet::PixelModuleHelper::PixelModuleHelper ( const InDetDD::SiDetectorDesign design)
inline

Definition at line 38 of file PixelModuleHelper.h.

39  {
40  const InDetDD::PixelModuleDesign *pixelModuleDesign = dynamic_cast<const InDetDD::PixelModuleDesign *>(&design);
41  if (pixelModuleDesign) {
42  m_sensorColumns = pixelModuleDesign->columns();
43  m_sensorRows = pixelModuleDesign->rows();
44  if (pixelModuleDesign->rowsPerCircuit()==400 /* @TODO find a better way to identify when to swap columns and rows*/ ) {
45  // the front-ends of ITk ring triplet modules are rotated differently
46  // wrt. the offline coordinate system compared to quads and
47  // barrel triplets. Once these modules are identified, the translation
48  // works in exactly the same way, but columns and rows need to be swapped,
50  m_columns = pixelModuleDesign->rows();
51  m_rows = pixelModuleDesign->columns();
52  m_columnsPerCircuit = pixelModuleDesign->rowsPerCircuit();
53  m_rowsPerCircuit = pixelModuleDesign->columnsPerCircuit();
54  m_circuitsPerColumn = pixelModuleDesign->numberOfCircuitsPerRow();
55  m_circuitsPerRow = pixelModuleDesign->numberOfCircuitsPerColumn();
56  m_columnPitch = pixelModuleDesign->phiPitch();
57  m_rowPitch = pixelModuleDesign->etaPitch();
58  }
59  else {
61  m_rows = pixelModuleDesign->rows();
62  m_columns = pixelModuleDesign->columns();
63  m_rowsPerCircuit = pixelModuleDesign->rowsPerCircuit();
64  m_columnsPerCircuit = pixelModuleDesign->columnsPerCircuit();
65  m_circuitsPerRow = pixelModuleDesign->numberOfCircuitsPerRow();
66  m_circuitsPerColumn = pixelModuleDesign->numberOfCircuitsPerColumn();
67  m_columnPitch = pixelModuleDesign->etaPitch();
68  m_rowPitch = pixelModuleDesign->phiPitch();
69  }
71  }
72  }

Member Function Documentation

◆ circuitsPerColumn()

unsigned int InDet::PixelModuleHelper::circuitsPerColumn ( ) const
inline

Definition at line 88 of file PixelModuleHelper.h.

88 { return m_circuitsPerColumn; }

◆ circuitsPerRow()

unsigned int InDet::PixelModuleHelper::circuitsPerRow ( ) const
inline

Definition at line 89 of file PixelModuleHelper.h.

89 { return m_circuitsPerRow; }

◆ columnPitch()

float InDet::PixelModuleHelper::columnPitch ( ) const
inline

Definition at line 91 of file PixelModuleHelper.h.

91 { return m_columnPitch; }

◆ columns()

unsigned int InDet::PixelModuleHelper::columns ( ) const
inline

Definition at line 84 of file PixelModuleHelper.h.

84 { return m_columns; }

◆ columnsPerCircuit()

unsigned int InDet::PixelModuleHelper::columnsPerCircuit ( ) const
inline

Definition at line 86 of file PixelModuleHelper.h.

86 { return m_columnsPerCircuit; }

◆ getChip()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::getChip ( unsigned int  key)
inlinestaticconstexprinherited

Get the column index from a full key.

Definition at line 110 of file ModuleKeyHelper.h.

110 { return (key & CHIP_MASK) >> CHIP_SHIFT; }

◆ getChipMask()

static constexpr unsigned int InDet::PixelModuleHelper::getChipMask ( )
inlinestaticconstexpr

Definition at line 35 of file PixelModuleHelper.h.

35 { return MaskUtils::createMask<ROW_BITS+COL_BITS,ROW_BITS+COL_BITS+CHIP_BITS>(); }

◆ getColGroup4Mask()

static constexpr unsigned int InDet::PixelModuleHelper::getColGroup4Mask ( )
inlinestaticconstexpr

Definition at line 33 of file PixelModuleHelper.h.

33 { return MaskUtils::createMask<ROW_BITS+2,ROW_BITS+COL_BITS+CHIP_BITS>(); }

◆ getColGroup8Mask()

static constexpr unsigned int InDet::PixelModuleHelper::getColGroup8Mask ( )
inlinestaticconstexpr

Definition at line 31 of file PixelModuleHelper.h.

31 { return MaskUtils::createMask<ROW_BITS+3,ROW_BITS+COL_BITS+CHIP_BITS>(); }

◆ getColumn()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::getColumn ( unsigned int  key)
inlinestaticconstexprinherited

Get the column index from a full key.

Definition at line 94 of file ModuleKeyHelper.h.

94 { return (key & COL_MASK) >> COL_SHIFT; }

◆ getDefectType()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::getDefectType ( unsigned int  key)
inlinestaticconstexprinherited

Get an associated defect type.

Definition at line 114 of file ModuleKeyHelper.h.

114  {
115  if constexpr(TYPE_BITS>0) {
116  return (key & TYPE_MASK) >> TYPE_SHIFT;
117  }
118  else {
119  return T{};
120  }
121  }

◆ getDefectTypeComponent()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::getDefectTypeComponent ( unsigned int  key)
inlinestaticconstexprinherited

Get key component of an associated defect type.

Definition at line 125 of file ModuleKeyHelper.h.

125  {
126  if constexpr(TYPE_BITS>0) {
127  return key & TYPE_MASK;
128  }
129  else {
130  return T{};
131  }
132  }

◆ getLimitColumnMax()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::getLimitColumnMax
inlinestaticconstexprinherited

Get the maximum row value.

Definition at line 106 of file ModuleKeyHelper.h.

106 { return COL_MASK; }

◆ getLimitRowMax()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::getLimitRowMax
inlinestaticconstexprinherited

Get the maximum row value.

Definition at line 102 of file ModuleKeyHelper.h.

102 { return ROW_MASK; }

◆ getPixelMask()

static constexpr unsigned int InDet::PixelModuleHelper::getPixelMask ( )
inlinestaticconstexpr

Definition at line 29 of file PixelModuleHelper.h.

29 { return MaskUtils::createMask<0,ROW_BITS+COL_BITS+CHIP_BITS>(); }

◆ getRow()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::getRow ( unsigned int  key)
inlinestaticconstexprinherited

Get the row index from a full key.

Definition at line 98 of file ModuleKeyHelper.h.

98 { return (key & ROW_MASK) >> ROW_SHIFT; }

◆ hardwareCoordinates()

unsigned int InDet::PixelModuleHelper::hardwareCoordinates ( unsigned int  row,
unsigned int  column 
) const
inline

compute "hardware" coordinates from offline coordinates.

Parameters
rowoffline row aka. phi index
columnoffline column aka. eta index
Returns
packed triplet of chip, column, row.

Definition at line 99 of file PixelModuleHelper.h.

99  {
100  unsigned int chip =0;
101  if (swapOfflineRowsColumns()) {
102  unsigned int tmp=row;
103  row=column;
104  column=tmp;
105  }
106  if (circuitsPerColumn()>1) {
107  assert( circuitsPerColumn() == 2);
108  chip += (row/rowsPerCircuit()) * circuitsPerRow();
109  row = row % rowsPerCircuit();
110  if (chip>0) {
111  row = rowsPerCircuit() - row -1;
112  column = columns() - column -1;
113  }
114  }
115  if (circuitsPerRow()>1) {
116  chip += column/columnsPerCircuit();
118  }
119  return makeKey(0u, chip, column, row);
120  }

◆ isMatchingDefect()

static constexpr bool InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::isMatchingDefect ( unsigned int  defect_key,
unsigned int  key 
)
inlinestaticconstexprinherited

Convenience method to check whether the key matches the defect.

Parameters
defect_keythe key of the defect returned by lower_bound of the emulated defects.
keythe key to test
Returns
true if key overlaps with the defect range or defect.

Definition at line 184 of file ModuleKeyHelper.h.

184  {
185  return (key == makeBaseKey(defect_key) || isRangeKey(defect_key));
186  }

◆ isRangeKey()

static constexpr bool InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::isRangeKey ( unsigned int  key)
inlinestaticconstexprinherited

Test whether a key is a range key.

Range keys mark the beginning of inclusive range.

Definition at line 150 of file ModuleKeyHelper.h.

150  {
151  if constexpr(TYPE_MASK) {
152  return ((key & RANGE_FLAG_MASK)>>RANGE_FLAG_SHIFT);
153  }
154  else {
155  return ((key>>RANGE_FLAG_SHIFT) );
156  }
157  }

◆ makeBaseKey()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::makeBaseKey ( unsigned int  key)
inlinestaticconstexprinherited

Return the key with the range flag removed.

If the key is a range key return the key without the range flag otherwise return the the same key.

Definition at line 168 of file ModuleKeyHelper.h.

168 { return key & (~(RANGE_FLAG_MASK|TYPE_MASK)); }

◆ makeDefectTypeKey()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::makeDefectTypeKey ( unsigned int  defect_type)
inlinestaticconstexprinherited

Make the key component representing the an associated defect type.

Definition at line 136 of file ModuleKeyHelper.h.

137  {
138  if constexpr(TYPE_BITS>0) {
139  assert( (((defect_type << TYPE_SHIFT ) & TYPE_MASK) >> TYPE_SHIFT) == defect_type);
140  return (defect_type << TYPE_SHIFT ) & TYPE_MASK;
141  }
142  else {
143  return T{};
144  }
145  }

◆ makeKey()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::makeKey ( bool  is_range,
unsigned int  chip,
unsigned int  col,
unsigned int  row = 0u 
)
inlinestaticconstexprinherited

Create a key from mask, chip, column and row indices.

Parameters
is_rangeif true the key marks the beginning of an inclusive range
chipthe index of a chip starting from zero
colthe index of a column starting from zero
rowthe index of a row starting from zero

The indices must be representable by the number of reserved bits.

Definition at line 85 of file ModuleKeyHelper.h.

85  {
86  return static_cast<T>(is_range) << RANGE_FLAG_SHIFT
87  | makeKeyPart<CHIP_SHIFT,CHIP_MASK>(chip)
88  | makeKeyPart<COL_SHIFT,COL_MASK>(col)
89  | makeKeyPart<ROW_SHIFT,ROW_MASK>(row);
90  }

◆ makeKeyPart()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::makeKeyPart ( [[maybe_unused] ] unsigned int  val)
inlinestaticconstexprprotectedinherited

Convenience method to create part of a key.

Template Parameters
SHIFTthe given value will be shifted by this ammount
MASKthe shifted value must not overflow this mask.
Parameters
valthe value to be stored in the key part

Definition at line 66 of file ModuleKeyHelper.h.

66  {
67  if constexpr(MASK==0) {
68  return T{};
69  }
70  else {
71  assert (((val << SHIFT) & MASK) == (val << SHIFT));
72  return (val << SHIFT);
73  }
74  }

◆ makeRangeForMask()

static constexpr std::pair<unsigned int , unsigned int > InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::makeRangeForMask ( unsigned int  key,
unsigned int  mask 
)
inlinestaticconstexprinherited

Return a key pair marking the beginning and the end of the range for the given mask and key.

Parameters
keya key which marks a point in the range
maska mask which defines the range @preturn a pair containing the start key and end key of the range

Definition at line 175 of file ModuleKeyHelper.h.

175  {
176  return std::make_pair( key & mask, (key | ((~mask) & (CHIP_MASK|COL_MASK|ROW_MASK))) );
177  }

◆ makeRangeKey()

static constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::makeRangeKey ( unsigned int  key)
inlinestaticconstexprinherited

Turn a key into a range key.

Such keys mark the beginning of an inclusive range.

Definition at line 162 of file ModuleKeyHelper.h.

162 { return key | RANGE_FLAG_MASK; }

◆ masks()

std::array<unsigned int, N_MASKS> InDet::PixelModuleHelper::masks ( ) const
inline

Definition at line 75 of file PixelModuleHelper.h.

75  {
76  return std::array<unsigned int,N_MASKS> {
80  };
81  }

◆ nCells()

unsigned int InDet::PixelModuleHelper::nCells ( ) const
inline

Return total number of pixels per module.

Definition at line 156 of file PixelModuleHelper.h.

156  {
157  return nSensorColumns() * nSensorRows();
158  }

◆ nElements()

unsigned int InDet::PixelModuleHelper::nElements ( unsigned int  mask_i) const
inline

return the maximum number of unique mask (or group) defects per module.

Definition at line 171 of file PixelModuleHelper.h.

171  {
172  switch (mask_i) {
173  case 1:
174  return nSensorColumns() * circuitsPerRow() / (m_rectangularPixels ? 4 : 8);
175  case 2:
176  return circuitsPerColumn() * circuitsPerRow();
177  default:
178  assert( mask_i==0);
179  return nCells();
180  }
181  }

◆ nMasks()

static constexpr unsigned int InDet::PixelModuleHelper::nMasks ( )
inlinestaticconstexpr

Definition at line 74 of file PixelModuleHelper.h.

74 { return N_MASKS; }

◆ nSensorColumns()

unsigned int InDet::PixelModuleHelper::nSensorColumns ( ) const
inline

Return the number of offline columns.

Definition at line 161 of file PixelModuleHelper.h.

161  {
162  return m_sensorColumns;
163  }

◆ nSensorRows()

unsigned int InDet::PixelModuleHelper::nSensorRows ( ) const
inline

Return the number of offline rows.

Definition at line 166 of file PixelModuleHelper.h.

166  {
167  return m_sensorRows;
168  }

◆ offlineCoordinates()

std::pair<unsigned int,unsigned int> InDet::PixelModuleHelper::offlineCoordinates ( unsigned int  key) const
inline

compute offline coordinates from "hardware" coordinates

Parameters
keypacked hardware coordinates
Returns
offline row, column pair

Definition at line 125 of file PixelModuleHelper.h.

125  {
126  unsigned int chip = getChip(key);
127  unsigned int column = getColumn(key);
128  unsigned int row = getRow(key);
129  // handle special values
130  // used for merging
131  if (row == getLimitRowMax()) {
132  row=rowsPerCircuit()-1;
133  }
134  if (row == rowsPerCircuit()) {
135  column+=1u;
136  row=0u;
137  }
138 
139  column+= columnsPerCircuit() * (chip%circuitsPerRow());
140  if (chip>=circuitsPerRow()) {
141  column=columns() - column -1;
142  row=rowsPerCircuit() - row -1;
143  row+=rowsPerCircuit() * (chip/circuitsPerRow());
144  }
145  if (swapOfflineRowsColumns()) {
147  }
148  if (row>=nSensorRows() || column>=nSensorColumns()) {
149  throw std::runtime_error("Invvalid offline coordinates");
150  }
151  return std::make_pair(row,column);
152  }

◆ offlineRange()

std::array<unsigned int,4> InDet::PixelModuleHelper::offlineRange ( const std::pair< unsigned int, unsigned int > &  range) const
inline

Function to return offline column and row ranges matching the defect-area of the given key (used for histogramming)

Parameters
rangepair of packed hardware coordinates addressing the start and end pixel of an rectangular inclusive pixel range.
Returns
offline start column, end column, start row, end row, where the end is meant to be exclusive i.e. [start, end)

Definition at line 187 of file PixelModuleHelper.h.

187  {
188  if (range.first != range.second) {
189  // if (getRow(range.first) !=0) {
190  // throw std::runtime_error("invalid key");
191  // };
192 
193  std::pair<unsigned int, unsigned int> start=offlineCoordinates(range.first);
194  std::pair<unsigned int, unsigned int> end=offlineCoordinates(range.second);
195  return std::array<unsigned int,4>{ std::min(start.first, end.first), std::max(start.first, end.first)+1,
196  std::min(start.second, end.second), std::max(start.second,end.second)+1};
197  }
198  else {
199  std::pair<unsigned int, unsigned int> start=offlineCoordinates(range.first);
200  return std::array<unsigned int,4>{ start.first, start.first+1,
201  start.second, start.second+1};
202  }
203  }

◆ operator bool()

InDet::PixelModuleHelper::operator bool ( ) const
inline

Definition at line 82 of file PixelModuleHelper.h.

82 { return m_columns>0; }

◆ rowPitch()

float InDet::PixelModuleHelper::rowPitch ( ) const
inline

Definition at line 92 of file PixelModuleHelper.h.

92 { return m_rowPitch; }

◆ rows()

unsigned int InDet::PixelModuleHelper::rows ( ) const
inline

Definition at line 85 of file PixelModuleHelper.h.

85 { return m_rows; }

◆ rowsPerCircuit()

unsigned int InDet::PixelModuleHelper::rowsPerCircuit ( ) const
inline

Definition at line 87 of file PixelModuleHelper.h.

87 { return m_rowsPerCircuit; }

◆ swapOfflineRowsColumns()

bool InDet::PixelModuleHelper::swapOfflineRowsColumns ( ) const
inline

Definition at line 204 of file PixelModuleHelper.h.

204 { return m_swapOfflineRowsColumns; }

Member Data Documentation

◆ CHIP_BITS

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::CHIP_BITS
staticconstexprinherited

Definition at line 44 of file ModuleKeyHelper.h.

◆ CHIP_MASK

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::CHIP_MASK
staticconstexprinherited

Definition at line 54 of file ModuleKeyHelper.h.

◆ CHIP_SHIFT

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::CHIP_SHIFT
staticconstexprinherited

Definition at line 49 of file ModuleKeyHelper.h.

◆ COL_BITS

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::COL_BITS
staticconstexprinherited

Definition at line 43 of file ModuleKeyHelper.h.

◆ COL_MASK

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::COL_MASK
staticconstexprinherited

Definition at line 53 of file ModuleKeyHelper.h.

◆ COL_SHIFT

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::COL_SHIFT
staticconstexprinherited

Definition at line 48 of file ModuleKeyHelper.h.

◆ m_circuitsPerColumn

unsigned char InDet::PixelModuleHelper::m_circuitsPerColumn = 0
private

Definition at line 215 of file PixelModuleHelper.h.

◆ m_circuitsPerRow

unsigned char InDet::PixelModuleHelper::m_circuitsPerRow = 0
private

Definition at line 214 of file PixelModuleHelper.h.

◆ m_columnPitch

float InDet::PixelModuleHelper::m_columnPitch = 0
private

Definition at line 217 of file PixelModuleHelper.h.

◆ m_columns

unsigned short InDet::PixelModuleHelper::m_columns = 0
private

Definition at line 211 of file PixelModuleHelper.h.

◆ m_columnsPerCircuit

unsigned short InDet::PixelModuleHelper::m_columnsPerCircuit = 0
private

Definition at line 213 of file PixelModuleHelper.h.

◆ m_rectangularPixels

bool InDet::PixelModuleHelper::m_rectangularPixels = false
private

Definition at line 220 of file PixelModuleHelper.h.

◆ m_rowPitch

float InDet::PixelModuleHelper::m_rowPitch = 0
private

Definition at line 218 of file PixelModuleHelper.h.

◆ m_rows

unsigned short InDet::PixelModuleHelper::m_rows = 0
private

Definition at line 210 of file PixelModuleHelper.h.

◆ m_rowsPerCircuit

unsigned short InDet::PixelModuleHelper::m_rowsPerCircuit = 0
private

Definition at line 212 of file PixelModuleHelper.h.

◆ m_sensorColumns

unsigned short InDet::PixelModuleHelper::m_sensorColumns =0
private

Definition at line 209 of file PixelModuleHelper.h.

◆ m_sensorRows

unsigned short InDet::PixelModuleHelper::m_sensorRows =0
private

Definition at line 208 of file PixelModuleHelper.h.

◆ m_swapOfflineRowsColumns

bool InDet::PixelModuleHelper::m_swapOfflineRowsColumns =false
private

Definition at line 221 of file PixelModuleHelper.h.

◆ N_COLS_PER_GROUP

constexpr std::array<unsigned short,2> InDet::PixelModuleHelper::N_COLS_PER_GROUP
staticconstexpr
Initial value:
{
8,
4}

Definition at line 24 of file PixelModuleHelper.h.

◆ N_MASKS

constexpr unsigned int InDet::PixelModuleHelper::N_MASKS =3
staticconstexpr

Definition at line 73 of file PixelModuleHelper.h.

◆ RANGE_FLAG_BITS

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::RANGE_FLAG_BITS
staticconstexprinherited

Definition at line 45 of file ModuleKeyHelper.h.

◆ RANGE_FLAG_MASK

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::RANGE_FLAG_MASK
staticconstexprinherited

Definition at line 55 of file ModuleKeyHelper.h.

◆ RANGE_FLAG_SHIFT

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::RANGE_FLAG_SHIFT
staticconstexprinherited

Definition at line 50 of file ModuleKeyHelper.h.

◆ ROW_BITS

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::ROW_BITS
staticconstexprinherited

Definition at line 42 of file ModuleKeyHelper.h.

◆ ROW_MASK

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::ROW_MASK
staticconstexprinherited

Definition at line 52 of file ModuleKeyHelper.h.

◆ ROW_SHIFT

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::ROW_SHIFT
staticconstexprinherited

Definition at line 47 of file ModuleKeyHelper.h.

◆ TYPE_BITS

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::TYPE_BITS
staticconstexprinherited

Definition at line 46 of file ModuleKeyHelper.h.

◆ TYPE_MASK

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::TYPE_MASK
staticconstexprinherited

Definition at line 56 of file ModuleKeyHelper.h.

◆ TYPE_SHIFT

constexpr unsigned int InDet::ModuleKeyHelper< unsigned int , T_ROW_BITS, T_COL_BITS, T_CHIP_BITS, T_TYPE_BITS >::TYPE_SHIFT
staticconstexprinherited

Definition at line 51 of file ModuleKeyHelper.h.


The documentation for this class was generated from the following file:
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::getColumn
static constexpr unsigned int getColumn(unsigned int key)
Get the column index from a full key.
Definition: ModuleKeyHelper.h:94
InDet::PixelModuleHelper::nSensorColumns
unsigned int nSensorColumns() const
Return the number of offline columns.
Definition: PixelModuleHelper.h:161
InDet::PixelModuleHelper::m_columnPitch
float m_columnPitch
Definition: PixelModuleHelper.h:217
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::getRow
static constexpr unsigned int getRow(unsigned int key)
Get the row index from a full key.
Definition: ModuleKeyHelper.h:98
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::CHIP_MASK
static constexpr unsigned int CHIP_MASK
Definition: ModuleKeyHelper.h:54
InDetDD::PixelModuleDesign
Definition: PixelModuleDesign.h:45
InDetDD::PixelModuleDesign::columns
int columns() const
Number of cell columns per module:
Definition: PixelModuleDesign.h:331
InDet::PixelModuleHelper::m_columnsPerCircuit
unsigned short m_columnsPerCircuit
Definition: PixelModuleHelper.h:213
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:13
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::RANGE_FLAG_MASK
static constexpr unsigned int RANGE_FLAG_MASK
Definition: ModuleKeyHelper.h:55
InDetDD::PixelModuleDesign::rows
int rows() const
Number of cell rows per module:
Definition: PixelModuleDesign.h:336
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::TYPE_BITS
static constexpr unsigned int TYPE_BITS
Definition: ModuleKeyHelper.h:46
DeMoUpdate.column
dictionary column
Definition: DeMoUpdate.py:1110
keylayer_zslicemap.row
row
Definition: keylayer_zslicemap.py:155
InDet::PixelModuleHelper::swapOfflineRowsColumns
bool swapOfflineRowsColumns() const
Definition: PixelModuleHelper.h:204
InDet::PixelModuleHelper::m_sensorRows
unsigned short m_sensorRows
Definition: PixelModuleHelper.h:208
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:77
InDetDD::PixelModuleDesign::etaPitch
virtual double etaPitch() const
Pitch in eta direction.
Definition: PixelModuleDesign.cxx:208
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:459
InDet::PixelModuleHelper::m_rowsPerCircuit
unsigned short m_rowsPerCircuit
Definition: PixelModuleHelper.h:212
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:92
InDet::PixelModuleHelper::m_circuitsPerRow
unsigned char m_circuitsPerRow
Definition: PixelModuleHelper.h:214
InDetDD::PixelModuleDesign::phiPitch
virtual double phiPitch() const
Pitch in phi direction.
Definition: PixelModuleDesign.cxx:192
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::CHIP_SHIFT
static constexpr unsigned int CHIP_SHIFT
Definition: ModuleKeyHelper.h:49
InDet::PixelModuleHelper::getColGroup4Mask
static constexpr unsigned int getColGroup4Mask()
Definition: PixelModuleHelper.h:33
InDet::PixelModuleHelper::m_rowPitch
float m_rowPitch
Definition: PixelModuleHelper.h:218
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::makeBaseKey
static constexpr unsigned int makeBaseKey(unsigned int key)
Return the key with the range flag removed.
Definition: ModuleKeyHelper.h:168
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::COL_SHIFT
static constexpr unsigned int COL_SHIFT
Definition: ModuleKeyHelper.h:48
InDetDD::PixelModuleDesign::numberOfCircuitsPerColumn
int numberOfCircuitsPerColumn() const
Number of circuits per column:
Definition: PixelModuleDesign.h:311
InDet::PixelModuleHelper::m_circuitsPerColumn
unsigned char m_circuitsPerColumn
Definition: PixelModuleHelper.h:215
InDet::PixelModuleHelper::getColGroup8Mask
static constexpr unsigned int getColGroup8Mask()
Definition: PixelModuleHelper.h:31
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::ROW_MASK
static constexpr unsigned int ROW_MASK
Definition: ModuleKeyHelper.h:52
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::getChip
static constexpr unsigned int getChip(unsigned int key)
Get the column index from a full key.
Definition: ModuleKeyHelper.h:110
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::TYPE_MASK
static constexpr unsigned int TYPE_MASK
Definition: ModuleKeyHelper.h:56
InDet::PixelModuleHelper::m_sensorColumns
unsigned short m_sensorColumns
Definition: PixelModuleHelper.h:209
InDetDD::PixelModuleDesign::numberOfCircuitsPerRow
int numberOfCircuitsPerRow() const
Number of circuits per row:
Definition: PixelModuleDesign.h:316
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::COL_MASK
static constexpr unsigned int COL_MASK
Definition: ModuleKeyHelper.h:53
InDet::PixelModuleHelper::m_swapOfflineRowsColumns
bool m_swapOfflineRowsColumns
Definition: PixelModuleHelper.h:221
InDet::PixelModuleHelper::m_rows
unsigned short m_rows
Definition: PixelModuleHelper.h:210
InDet::PixelModuleHelper::m_columns
unsigned short m_columns
Definition: PixelModuleHelper.h:211
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::ROW_SHIFT
static constexpr unsigned int ROW_SHIFT
Definition: ModuleKeyHelper.h:47
InDet::PixelModuleHelper::columnsPerCircuit
unsigned int columnsPerCircuit() const
Definition: PixelModuleHelper.h:86
InDetDD::PixelModuleDesign::rowsPerCircuit
int rowsPerCircuit() const
Number of cell rows per circuit:
Definition: PixelModuleDesign.h:326
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::makeKey
static constexpr unsigned int makeKey(bool is_range, unsigned int chip, unsigned int col, unsigned int row=0u)
Create a key from mask, chip, column and row indices.
Definition: ModuleKeyHelper.h:85
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
InDet::PixelModuleHelper::nCells
unsigned int nCells() const
Return total number of pixels per module.
Definition: PixelModuleHelper.h:156
InDet::PixelModuleHelper::getChipMask
static constexpr unsigned int getChipMask()
Definition: PixelModuleHelper.h:35
InDet::PixelModuleHelper::rowsPerCircuit
unsigned int rowsPerCircuit() const
Definition: PixelModuleHelper.h:87
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::TYPE_SHIFT
static constexpr unsigned int TYPE_SHIFT
Definition: ModuleKeyHelper.h:51
InDet::PixelModuleHelper::nSensorRows
unsigned int nSensorRows() const
Return the number of offline rows.
Definition: PixelModuleHelper.h:166
InDet::PixelModuleHelper::PixelModuleHelper
PixelModuleHelper(const InDetDD::SiDetectorDesign &design)
Definition: PixelModuleHelper.h:38
InDet::PixelModuleHelper::m_rectangularPixels
bool m_rectangularPixels
Definition: PixelModuleHelper.h:220
InDet::PixelModuleHelper::offlineCoordinates
std::pair< unsigned int, unsigned int > offlineCoordinates(unsigned int key) const
compute offline coordinates from "hardware" coordinates
Definition: PixelModuleHelper.h:125
InDet::PixelModuleHelper::N_MASKS
static constexpr unsigned int N_MASKS
Definition: PixelModuleHelper.h:73
InDet::PixelModuleHelper::circuitsPerRow
unsigned int circuitsPerRow() const
Definition: PixelModuleHelper.h:89
InDet::PixelModuleHelper::circuitsPerColumn
unsigned int circuitsPerColumn() const
Definition: PixelModuleHelper.h:88
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::RANGE_FLAG_SHIFT
static constexpr unsigned int RANGE_FLAG_SHIFT
Definition: ModuleKeyHelper.h:50
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::getLimitRowMax
static constexpr unsigned int getLimitRowMax()
Get the maximum row value.
Definition: ModuleKeyHelper.h:102
InDet::ModuleKeyHelper< unsigned int, 12, 12, 4, 2 >::isRangeKey
static constexpr bool isRangeKey(unsigned int key)
Test whether a key is a range key.
Definition: ModuleKeyHelper.h:150
InDetDD::PixelModuleDesign::columnsPerCircuit
int columnsPerCircuit() const
Number of cell columns per circuit:
Definition: PixelModuleDesign.h:321
RoiUtil::MASK
MASK
Definition: RoiSerialise.cxx:35
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
InDet::PixelModuleHelper::getPixelMask
static constexpr unsigned int getPixelMask()
Definition: PixelModuleHelper.h:29
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
InDet::PixelModuleHelper::columns
unsigned int columns() const
Definition: PixelModuleHelper.h:84