ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
InDetDD::PixelDiodeMatrix Class Reference

#include <PixelDiodeMatrix.h>

Collaboration diagram for InDetDD::PixelDiodeMatrix:

Public Types

enum  Direction { phiDir, etaDir }
 

Public Member Functions

 ~PixelDiodeMatrix ()=default
 Destructor. More...
 
const PixelDiodeMatrixcellIdOfPosition (const Amg::Vector2D &position, SiCellId &cellId) const
 Return cell Id corresponding to a relative position within the matrix. More...
 
const PixelDiodeMatrixpositionOfCell (const SiCellId &cellId, Amg::Vector2D &position) const
 Search diode matching the given cell id and compute its position. More...
 
double phiWidth () const
 Width in phi (x) direction. More...
 
double phiHalfWidth () const
 
double phiWidthInverse () const
 Inverse of width in phi (x) direction. More...
 
double etaWidth () const
 Width in eta (y) direction. More...
 
double etaHalfWidth () const
 
double etaWidthInverse () const
 Inverse of width in eta (y) direction. More...
 
int phiCells () const
 Number of cells in phi (x) direction. More...
 
int etaCells () const
 Number of cells in eta (y) direction. More...
 
bool singleCell () const
 Query wether the matrix is just a single cell. More...
 
std::string createDebugStringRepr () const
 Create debug representation. More...
 

Static Public Member Functions

static std::shared_ptr< const PixelDiodeMatrixconstruct (double phiWidth, double etaWidth)
 Construct method for just a single cell. More...
 
static std::shared_ptr< const PixelDiodeMatrixconstruct (Direction direction, std::shared_ptr< const PixelDiodeMatrix > lowerCell, std::shared_ptr< const PixelDiodeMatrix > middleCells, int numCells, std::shared_ptr< const PixelDiodeMatrix > upperCells)
 Construct method with multiple matrices. More...
 

Private Member Functions

 PixelDiodeMatrix ()
 Hidden constructor. More...
 
void initialize (double phiWidth, double etaWidth)
 Initialize for just a single cell. More...
 
void initialize (Direction direction, std::shared_ptr< const PixelDiodeMatrix > lowerCell, std::shared_ptr< const PixelDiodeMatrix > middleCells, int numCells, std::shared_ptr< const PixelDiodeMatrix > upperCells)
 Initialize for multiple matrices. More...
 
std::string createDebugStringRepr (unsigned int level) const
 Create debug representation for a specific level. More...
 

Static Private Member Functions

static const PixelDiodeMatrixpositionOfCell (const PixelDiodeMatrix *matrix, const SiCellId &cellId, Amg::Vector2D &position)
 Search diode matching the given cell id and compute its position. More...
 

Private Attributes

double m_phiWidth = 0
 
double m_phiWidthInverse = 0
 
double m_etaWidth = 0
 
double m_etaWidthInverse = 0
 
int m_phiCells = 0
 
int m_etaCells = 0
 
Direction m_direction {}
 
int m_numCells = 0
 
std::shared_ptr< const PixelDiodeMatrixm_lowerCell
 
std::shared_ptr< const PixelDiodeMatrixm_middleCells
 
std::shared_ptr< const PixelDiodeMatrixm_upperCell
 
bool m_singleCell = false
 

Detailed Description

Class used to describe the segmentation of the pixel and allow for conversion between cell id and position.

The class PixelDiodeMatrix represents what it calls a cell. In the context of this class a cell can either be just a simple cell as one would normally think of a pixel cell (eg a 50x400um or 50x600um cell) or it can be a container of multiple cells. To allow for different size cells and layout, it contains a lower cell, an upper cell and multiple middle cells. The middle cells are all the same (so all have the same size), but the upper and lower cells can be different and can have different size or be left out if they are not needed. The direction of replication is also specified (eta or phi direction). The size of the cells in the direction orthoganal to the replication direction must all be the same (there is no check for this though).

To help understand the structure and its use, consider the current pixel geometry. The pixel module has two cell sizes short and long cells. These are refered to as normal and big bellow. The long cells are in the region at the edge of the the FE chips in order to cover the gap between FE chips.

The assembly of this structure is done when building the sensitive detector in GeoModel in the class GeoPixelSiCrystal.

Each cell knows its total size and total number of child cells in the phi and eta direction. This is determined by totaling up these quantities when the object is constructed.

The structure allows for efficient navigation from cell number to position and vice-versa. There are two main methods which allow for this navigation: cellIdOfPosition() (from cell id to position) and positionOfCell() (from position to cell id).

As it is assumed that child cells fill up completely its parent, there is no range check in these methods. The methods are called from PixelDiodeMap where it first checks that is within range of the top level cell (refered to as the top level matrix).

PixelDiodeMatrix might inherit std::shared_ptr but needs to return std::shared_ptr of this pointer. To do this, std::enable_shared_from_this and shared_from_this() have to be used. https://en.cppreference.com/w/cpp/memory/enable_shared_from_this

See the description of these methods for more details.

Author
Grant Gorfine
  • modified & maintained: Nick Styles, Andreas Salzburger

Definition at line 93 of file PixelDiodeMatrix.h.

Member Enumeration Documentation

◆ Direction

Enumerator
phiDir 
etaDir 

Definition at line 97 of file PixelDiodeMatrix.h.

97 {phiDir, etaDir};

Constructor & Destructor Documentation

◆ ~PixelDiodeMatrix()

InDetDD::PixelDiodeMatrix::~PixelDiodeMatrix ( )
default

Destructor.

◆ PixelDiodeMatrix()

InDetDD::PixelDiodeMatrix::PixelDiodeMatrix ( )
inlineprivate

Hidden constructor.

Definition at line 161 of file PixelDiodeMatrix.h.

161 {};

Member Function Documentation

◆ cellIdOfPosition()

const PixelDiodeMatrix * InDetDD::PixelDiodeMatrix::cellIdOfPosition ( const Amg::Vector2D relPosition,
SiCellId cellId 
) const

Return cell Id corresponding to a relative position within the matrix.

Description.

The cellId is modified and returns the id relative to the passed cellId. That is, it adds the relative cellId to the cellId passed to the function. A pointer to the correspond cell is returned. This can be used to get the size of the cell.

Overview of algoritm:

  • Before calling this method on the top level matrix the 2D position is calculated relative to the bottom left corner.
  • The method cellIdOfPosition is always called with the position relative to bottom left of the cell and the cell id of bottom left child cell. For the top level matrix this is the position (-halfWidth, -halfLength) and a starting cell id of (0,0).
  • It first checks if it is in the lower cell (if it exists).
  • If not, it determines which cell by dividing the position relative to the start of the cell array by the pitch in that direction.
  • If it is beyond the range of the middle cells it is taken as being in the upper cell.
  • The cell number is added to the cellId that is passed to the method
  • Once the cell is determined the function is called recursively until it reaches a single cell.

Definition at line 131 of file PixelDiodeMatrix.cxx.

152 {
153  using Trk::distPhi;
154  using Trk::distEta;
155 
156  if (m_singleCell) {
157  return this;
158  }
159 
160  double relPosDir = 0; // Relative position along m_direction
161  int startIndex = 0;
162  double pitch = 0;
163  double pitchInverse = 0;
164  int middleCells = 0;
165 
166  if (m_direction == phiDir) {
167 
168  relPosDir = relPosition[distPhi];
169  pitch = m_middleCells->phiWidth();
170  pitchInverse = m_middleCells->phiWidthInverse();
171  middleCells = m_middleCells->phiCells();
172 
173  if (m_lowerCell) {
174  if (relPosDir < m_lowerCell->phiWidth()) {
175  return m_lowerCell->cellIdOfPosition(relPosition, cellId);
176  } else {
177  relPosDir -= m_lowerCell->phiWidth();
178  startIndex += m_lowerCell->phiCells();
179  }
180  }
181  } else { // etaDir
182 
183  relPosDir = relPosition[distEta];
184  pitch = m_middleCells->etaWidth();
185  pitchInverse = m_middleCells->etaWidthInverse();
186  middleCells = m_middleCells->etaCells();
187 
188  if (m_lowerCell) {
189  if (relPosDir < m_lowerCell->etaWidth()) {
190  return m_lowerCell->cellIdOfPosition(relPosition, cellId);
191  } else {
192  relPosDir -= m_lowerCell->etaWidth();
193  startIndex += m_lowerCell->etaCells();
194  }
195  }
196  }
197 
198 
199  int index = relPosDir * pitchInverse;
200 
201  const PixelDiodeMatrix *nextCell{};
202 
203  bool outOfBounds = index >= m_numCells;
204  if (m_upperCell != nullptr && outOfBounds) {
205  // We are in the upper cell.
206  index = m_numCells;
207  nextCell = m_upperCell.get();
208  } else {
209  // We are in the middle cells
210  // Make sure its in range (in case of rounding errors)
211  if (outOfBounds) index = m_numCells - 1;
212  nextCell = m_middleCells.get();
213  }
214 
215  if (index > 0) { // Make sure its in range (in case of rounding errors)
216  relPosDir -= index * pitch;
217  startIndex += index * middleCells;
218  }
219 
220  int newPhiIndex = cellId.phiIndex();
221  int newEtaIndex = cellId.etaIndex();
222  const PixelDiodeMatrix *cell{};
223 
224  if (m_direction == phiDir) {
225  if (nextCell->singleCell()) {
226  newPhiIndex += startIndex;
227  cell = nextCell;
228  } else {
229  Amg::Vector2D newRelPos(relPosDir, relPosition[distEta]);
230  SiCellId relId(0,0);
231  cell = nextCell->cellIdOfPosition(newRelPos, relId);
232  newPhiIndex += startIndex + relId.phiIndex();
233  newEtaIndex += relId.etaIndex();
234  }
235  } else {
236  if (nextCell->singleCell()) {
237  newEtaIndex += startIndex;
238  cell = nextCell;
239  } else {
240  Amg::Vector2D newRelPos(relPosition[distPhi], relPosDir);
241  SiCellId relId(0,0);
242  cell = nextCell->cellIdOfPosition(newRelPos, relId);
243  newPhiIndex += relId.phiIndex();
244  newEtaIndex += startIndex + relId.etaIndex();
245  }
246  }
247 
248  cellId = SiCellId(newPhiIndex, newEtaIndex);
249  return cell;
250 }

◆ construct() [1/2]

std::shared_ptr< const PixelDiodeMatrix > InDetDD::PixelDiodeMatrix::construct ( Direction  direction,
std::shared_ptr< const PixelDiodeMatrix lowerCell,
std::shared_ptr< const PixelDiodeMatrix middleCells,
int  numCells,
std::shared_ptr< const PixelDiodeMatrix upperCells 
)
static

Construct method with multiple matrices.

There may be zero or one lower matrix (pointer can be 0). Multiple (numCells) middle matrics (must pass a non zero pointer). There may be zero or one upper matrix (pointer can be 0). These must all have the same width and cells in the non replicating direction.

Definition at line 38 of file PixelDiodeMatrix.cxx.

43 {
44  class Helper : public PixelDiodeMatrix{};
45  std::shared_ptr<PixelDiodeMatrix> ptr = std::make_shared<Helper>();
46  ptr->initialize(direction,
47  std::move(lowerCell),
48  std::move(middleCells),
49  numCells,
50  std::move(upperCell));
51  return ptr;
52 }

◆ construct() [2/2]

std::shared_ptr< const PixelDiodeMatrix > InDetDD::PixelDiodeMatrix::construct ( double  phiWidth,
double  etaWidth 
)
static

Construct method for just a single cell.

Definition at line 14 of file PixelDiodeMatrix.cxx.

15 {
16  class Helper : public PixelDiodeMatrix{};
17  std::shared_ptr<PixelDiodeMatrix> ptr = std::make_shared<Helper>();
18  ptr->initialize(phiWidth, etaWidth);
19  return ptr;
20 }

◆ createDebugStringRepr() [1/2]

std::string InDetDD::PixelDiodeMatrix::createDebugStringRepr ( ) const
inline

Create debug representation.

Definition at line 249 of file PixelDiodeMatrix.h.

250  {
251  return this->createDebugStringRepr(0);
252  }

◆ createDebugStringRepr() [2/2]

std::string InDetDD::PixelDiodeMatrix::createDebugStringRepr ( unsigned int  level) const
private

Create debug representation for a specific level.

Definition at line 350 of file PixelDiodeMatrix.cxx.

351 {
352  std::string prefix(level, ' ');
353 
354  // base case: single cell
355  if (m_singleCell) {
356  std::string cellSize = "";
357  cellSize += prefix + "phi: " + std::to_string(m_phiWidth) + "\n";
358  cellSize += prefix + "eta: " + std::to_string(m_etaWidth) + "\n";
359  return cellSize;
360  }
361 
362  std::string cellContent = "";
363 
364  if (m_lowerCell == nullptr && m_middleCells == nullptr && m_upperCell == nullptr) {
365  cellContent += prefix + "completly empty (WARNING: there should always be at least one cell!)\n";
366  return cellContent;
367  }
368 
369  cellContent += prefix + "direction: ";
370  if (m_direction == phiDir) { cellContent += "phi\n"; }
371  else if (m_direction == etaDir) { cellContent += "eta\n"; }
372  else { cellContent += "unknown\n"; }
373 
374  // recursive call for nested cells
375  if (m_lowerCell != nullptr) {
376  cellContent += prefix + "lowerCell: \n";
377  cellContent += m_lowerCell->createDebugStringRepr(level + 1);
378  }
379  if (m_middleCells != nullptr) {
380  cellContent += prefix + "middleCells: " + std::to_string(m_numCells) + "x :\n";
381  cellContent += m_middleCells->createDebugStringRepr(level + 1);
382  }
383  if (m_upperCell != nullptr) {
384  cellContent += prefix + "upperCell: \n";
385  cellContent += m_upperCell->createDebugStringRepr(level + 1);
386  }
387 
388  return cellContent;
389 }

◆ etaCells()

int InDetDD::PixelDiodeMatrix::etaCells ( ) const
inline

Number of cells in eta (y) direction.

Definition at line 239 of file PixelDiodeMatrix.h.

240  {
241  return m_etaCells;
242  }

◆ etaHalfWidth()

double InDetDD::PixelDiodeMatrix::etaHalfWidth ( ) const
inline

Definition at line 224 of file PixelDiodeMatrix.h.

225  {
226  return m_etaWidth*0.5;
227  }

◆ etaWidth()

double InDetDD::PixelDiodeMatrix::etaWidth ( ) const
inline

Width in eta (y) direction.

Definition at line 219 of file PixelDiodeMatrix.h.

220  {
221  return m_etaWidth;
222  }

◆ etaWidthInverse()

double InDetDD::PixelDiodeMatrix::etaWidthInverse ( ) const
inline

Inverse of width in eta (y) direction.

Definition at line 229 of file PixelDiodeMatrix.h.

230  {
231  return m_etaWidthInverse;
232  }

◆ initialize() [1/2]

void InDetDD::PixelDiodeMatrix::initialize ( Direction  direction,
std::shared_ptr< const PixelDiodeMatrix lowerCell,
std::shared_ptr< const PixelDiodeMatrix middleCells,
int  numCells,
std::shared_ptr< const PixelDiodeMatrix upperCells 
)
private

Initialize for multiple matrices.

There may be zero or one lower matrix (pointer can be 0). Multiple (numCells) middle matrics (must pass a non zero pointer). There may be zero or one upper matrix (pointer can be 0). These must all have the same width and cells in the non replicating direction.

Definition at line 54 of file PixelDiodeMatrix.cxx.

59 {
60  m_phiWidth = 0;
61  m_etaWidth = 0;
62  m_phiCells = 0;
63  m_etaCells = 0;
64  m_direction = direction;
66  m_lowerCell = std::move(lowerCell);
67  m_middleCells = std::move(middleCells);
68  m_upperCell = std::move(upperCell);
69  m_singleCell = false;
70 
71  // middleCells must be non zero.
72  assert(m_middleCells);
73 
74  if (m_direction == phiDir) {
75 
76  // In eta direction widths must be all the same.
77  if (m_middleCells){
78  m_etaWidth = m_middleCells->etaWidth();
79  m_etaCells = m_middleCells->etaCells();
80  }
81  // Check lower and upper are consistent
82  // TODO.
83 
84  if (m_lowerCell) {
85  m_phiWidth += m_lowerCell->phiWidth();
86  m_phiCells += m_lowerCell->phiCells();
87  }
88 
89  if (m_middleCells){
90  m_phiWidth += m_numCells * m_middleCells->phiWidth();
91  m_phiCells += m_numCells * m_middleCells->phiCells();
92  }
93 
94  if (m_upperCell) {
95  m_phiWidth += m_upperCell->phiWidth();
96  m_phiCells += m_upperCell->phiCells();
97  }
98 
99  } else { // eta Direction
100 
101  // In phi direction widths must be all the same.
102  if (m_middleCells){
103  m_phiWidth = m_middleCells->phiWidth();
104  m_phiCells = m_middleCells->phiCells();
105  }
106  // Check lower and upper are consistent
107  // TODO.
108 
109  if (m_lowerCell) {
110  m_etaWidth += m_lowerCell->etaWidth();
111  m_etaCells += m_lowerCell->etaCells();
112  }
113 
114  if (m_middleCells){
115  m_etaWidth += m_numCells * m_middleCells->etaWidth();
116  m_etaCells += m_numCells * m_middleCells->etaCells();
117  }
118 
119  if (m_upperCell) {
120  m_etaWidth += m_upperCell->etaWidth();
121  m_etaCells += m_upperCell->etaCells();
122  }
123 
124  }
125 
128 }

◆ initialize() [2/2]

void InDetDD::PixelDiodeMatrix::initialize ( double  phiWidth,
double  etaWidth 
)
private

Initialize for just a single cell.

Definition at line 22 of file PixelDiodeMatrix.cxx.

23 {
28  m_phiCells = 1;
29  m_etaCells = 1;
30  m_direction = phiDir; // Irrelevant
31  m_numCells = 0;
32  m_lowerCell = nullptr;
33  m_middleCells = nullptr;
34  m_upperCell = nullptr;
35  m_singleCell = true;
36 }

◆ phiCells()

int InDetDD::PixelDiodeMatrix::phiCells ( ) const
inline

Number of cells in phi (x) direction.

Definition at line 234 of file PixelDiodeMatrix.h.

235  {
236  return m_phiCells;
237  }

◆ phiHalfWidth()

double InDetDD::PixelDiodeMatrix::phiHalfWidth ( ) const
inline

Definition at line 209 of file PixelDiodeMatrix.h.

210  {
211  return m_phiWidth*0.5;
212  }

◆ phiWidth()

double InDetDD::PixelDiodeMatrix::phiWidth ( ) const
inline

Width in phi (x) direction.

Definition at line 204 of file PixelDiodeMatrix.h.

205  {
206  return m_phiWidth;
207  }

◆ phiWidthInverse()

double InDetDD::PixelDiodeMatrix::phiWidthInverse ( ) const
inline

Inverse of width in phi (x) direction.

Definition at line 214 of file PixelDiodeMatrix.h.

215  {
216  return m_phiWidthInverse;
217  }

◆ positionOfCell() [1/2]

const PixelDiodeMatrix * InDetDD::PixelDiodeMatrix::positionOfCell ( const PixelDiodeMatrix matrix,
const SiCellId cellId,
Amg::Vector2D dest_position 
)
staticprivate

Search diode matching the given cell id and compute its position.

Description.

Parameters
matrixthe diode matrix in which the search is started
cellIdthe cell id relative to the given matrix
positionstorage for the position of the diode.
Returns
pointer to the sub-matrix which is representative for the diode.

Overview of algoritm:

  • It starts with the position of the bottom left corner of the cell. For the full matrix this is (-halfwidth,-halflength)
  • It first checks if is in the lower cell (if it exists).
  • If not it determines the bottom edge of the cell by multiplying the cell number by the pitch.
  • If it is beyond the range of the middle cells it is taken as being in the upper cell.
  • This position is then passed recursively to the same method until it reaches a single cell.
  • At the end the 2D position is then transformed to the position relative to the module center.

Definition at line 255 of file PixelDiodeMatrix.cxx.

272 {
273  using Trk::distPhi;
274  using Trk::distEta;
275  Amg::Vector2D position{
276  -matrix->phiHalfWidth(),
277  -matrix->etaHalfWidth()
278  };
279 
280  int rel_phi_index = cellId.phiIndex();
281  int rel_eta_index = cellId.etaIndex();
282  for( ;!matrix->m_singleCell; ) {
283 
284  int relIndex = 0; // Relative index along m_direction
285  double pitch = 0;
286  int nMiddleCells = 0;
287  double startPos = 0;
288  const auto direction = matrix->m_direction;
289 
290  if (direction == PixelDiodeMatrix::phiDir) {
291 
292  relIndex = rel_phi_index;
293 
294  const PixelDiodeMatrix *lowerCell = matrix->m_lowerCell.get();
295  if (lowerCell) {
296  if (relIndex < lowerCell->phiCells()) {
297  matrix = lowerCell;
298  continue;
299  } else {
300  relIndex -= lowerCell->phiCells();
301  startPos += lowerCell->phiWidth();
302  }
303  }
304  const PixelDiodeMatrix *middleCells = matrix->m_middleCells.get();
305  assert(middleCells);
306  pitch = middleCells->phiWidth();
307  nMiddleCells = middleCells->phiCells();
308 
309  } else { // etaDir
310 
311  relIndex = rel_eta_index;
312  const PixelDiodeMatrix *lowerCell = matrix->m_lowerCell.get();
313  if (lowerCell) {
314  if (relIndex < lowerCell->etaCells()) {
315  matrix = lowerCell;
316  continue;
317  } else {
318  relIndex -= lowerCell->etaCells();
319  startPos += lowerCell->etaWidth();
320  }
321  }
322  const PixelDiodeMatrix *middleCells = matrix->m_middleCells.get();
323  assert(middleCells);
324  pitch = middleCells->etaWidth();
325  nMiddleCells = middleCells->etaCells();
326 
327  }
328 
329  int index = std::min(relIndex / nMiddleCells,matrix->m_numCells); // @TODO upper bound correct ?
330  relIndex -= index * nMiddleCells;
331  startPos += index * pitch;
332 
333  matrix = (matrix->m_upperCell && index == matrix->m_numCells ) ? matrix->m_upperCell.get() : matrix->m_middleCells.get();
334 
335  if (direction == PixelDiodeMatrix::phiDir) {
336  rel_phi_index = relIndex;
337  position[distPhi] += startPos;
338  } else {
339  rel_eta_index = relIndex;
340  position[distEta] += startPos;
341  }
342  }
343  position[distPhi] += matrix->phiHalfWidth();
344  position[distEta] += matrix->etaHalfWidth();
345  dest_position = position;
346  return matrix;
347 }

◆ positionOfCell() [2/2]

const PixelDiodeMatrix * InDetDD::PixelDiodeMatrix::positionOfCell ( const SiCellId cellId,
Amg::Vector2D position 
) const
inline

Search diode matching the given cell id and compute its position.

Parameters
cellIdthe cell id relative to this matrix
positionstorage for the position of the diode relative to this matrix.
Returns
pointer to the sub-matrix which is representative for the diode. The position will be overwritten with newly computed diode position, and the position will be relative to this matrix.

Definition at line 255 of file PixelDiodeMatrix.h.

255  {
256  return InDetDD::PixelDiodeMatrix::positionOfCell(this, cellId, position);
257  }

◆ singleCell()

bool InDetDD::PixelDiodeMatrix::singleCell ( ) const
inline

Query wether the matrix is just a single cell.

Mainly for internal use.

Definition at line 244 of file PixelDiodeMatrix.h.

245  {
246  return m_singleCell;
247  }

Member Data Documentation

◆ m_direction

Direction InDetDD::PixelDiodeMatrix::m_direction {}
private

Definition at line 195 of file PixelDiodeMatrix.h.

◆ m_etaCells

int InDetDD::PixelDiodeMatrix::m_etaCells = 0
private

Definition at line 194 of file PixelDiodeMatrix.h.

◆ m_etaWidth

double InDetDD::PixelDiodeMatrix::m_etaWidth = 0
private

Definition at line 191 of file PixelDiodeMatrix.h.

◆ m_etaWidthInverse

double InDetDD::PixelDiodeMatrix::m_etaWidthInverse = 0
private

Definition at line 192 of file PixelDiodeMatrix.h.

◆ m_lowerCell

std::shared_ptr<const PixelDiodeMatrix> InDetDD::PixelDiodeMatrix::m_lowerCell
private

Definition at line 197 of file PixelDiodeMatrix.h.

◆ m_middleCells

std::shared_ptr<const PixelDiodeMatrix> InDetDD::PixelDiodeMatrix::m_middleCells
private

Definition at line 198 of file PixelDiodeMatrix.h.

◆ m_numCells

int InDetDD::PixelDiodeMatrix::m_numCells = 0
private

Definition at line 196 of file PixelDiodeMatrix.h.

◆ m_phiCells

int InDetDD::PixelDiodeMatrix::m_phiCells = 0
private

Definition at line 193 of file PixelDiodeMatrix.h.

◆ m_phiWidth

double InDetDD::PixelDiodeMatrix::m_phiWidth = 0
private

Definition at line 189 of file PixelDiodeMatrix.h.

◆ m_phiWidthInverse

double InDetDD::PixelDiodeMatrix::m_phiWidthInverse = 0
private

Definition at line 190 of file PixelDiodeMatrix.h.

◆ m_singleCell

bool InDetDD::PixelDiodeMatrix::m_singleCell = false
private

Definition at line 200 of file PixelDiodeMatrix.h.

◆ m_upperCell

std::shared_ptr<const PixelDiodeMatrix> InDetDD::PixelDiodeMatrix::m_upperCell
private

Definition at line 199 of file PixelDiodeMatrix.h.


The documentation for this class was generated from the following files:
InDetDD::PixelDiodeMatrix::phiWidth
double phiWidth() const
Width in phi (x) direction.
Definition: PixelDiodeMatrix.h:204
InDetDD::PixelDiodeMatrix::m_upperCell
std::shared_ptr< const PixelDiodeMatrix > m_upperCell
Definition: PixelDiodeMatrix.h:199
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
InDetDD::PixelDiodeMatrix::m_etaCells
int m_etaCells
Definition: PixelDiodeMatrix.h:194
AsgConfigHelper::Helper
std::vector< T > Helper(const std::string &input, TEnv &env)
Definition: AsgEGammaConfigHelper.cxx:83
InDetDD::PixelDiodeMatrix::m_singleCell
bool m_singleCell
Definition: PixelDiodeMatrix.h:200
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
index
Definition: index.py:1
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
InDetDD::PixelDiodeMatrix::etaWidth
double etaWidth() const
Width in eta (y) direction.
Definition: PixelDiodeMatrix.h:219
InDetDD::PixelDiodeMatrix::createDebugStringRepr
std::string createDebugStringRepr() const
Create debug representation.
Definition: PixelDiodeMatrix.h:249
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
InDetDD::PixelDiodeMatrix::PixelDiodeMatrix
PixelDiodeMatrix()
Hidden constructor.
Definition: PixelDiodeMatrix.h:161
InDetDD::PixelDiodeMatrix::phiCells
int phiCells() const
Number of cells in phi (x) direction.
Definition: PixelDiodeMatrix.h:234
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
InDetDD::PixelDiodeMatrix::phiDir
@ phiDir
Definition: PixelDiodeMatrix.h:97
InDetDD::PixelDiodeMatrix::m_lowerCell
std::shared_ptr< const PixelDiodeMatrix > m_lowerCell
Definition: PixelDiodeMatrix.h:197
Trk::distEta
@ distEta
readout for silicon
Definition: ParamDefs.h:51
InDetDD::PixelDiodeMatrix::m_phiWidthInverse
double m_phiWidthInverse
Definition: PixelDiodeMatrix.h:190
InDetDD::PixelDiodeMatrix::m_phiCells
int m_phiCells
Definition: PixelDiodeMatrix.h:193
InDetDD::PixelDiodeMatrix::positionOfCell
const PixelDiodeMatrix * positionOfCell(const SiCellId &cellId, Amg::Vector2D &position) const
Search diode matching the given cell id and compute its position.
Definition: PixelDiodeMatrix.h:255
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
Trk::distPhi
@ distPhi
Definition: ParamDefs.h:50
InDetDD::PixelDiodeMatrix::m_etaWidth
double m_etaWidth
Definition: PixelDiodeMatrix.h:191
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
InDetDD::PixelDiodeMatrix::m_phiWidth
double m_phiWidth
Definition: PixelDiodeMatrix.h:189
InDetDD::PixelDiodeMatrix::m_numCells
int m_numCells
Definition: PixelDiodeMatrix.h:196
InDetDD::PixelDiodeMatrix::etaCells
int etaCells() const
Number of cells in eta (y) direction.
Definition: PixelDiodeMatrix.h:239
InDetDD::PixelDiodeMatrix::m_middleCells
std::shared_ptr< const PixelDiodeMatrix > m_middleCells
Definition: PixelDiodeMatrix.h:198
python.testIfMatch.matrix
matrix
Definition: testIfMatch.py:63
xAOD::TauJetParameters::numCells
@ numCells
Definition: TauDefs.h:171
InDetDD::PixelDiodeMatrix::m_direction
Direction m_direction
Definition: PixelDiodeMatrix.h:195
InDetDD::PixelDiodeMatrix::m_etaWidthInverse
double m_etaWidthInverse
Definition: PixelDiodeMatrix.h:192
InDetDD::PixelDiodeMatrix::etaDir
@ etaDir
Definition: PixelDiodeMatrix.h:97