ATLAS Offline Software
PixelModuleDesign.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // PixelModuleDesign.h
8 // (c) ATLAS Pixel Detector software
10 
11 
12 #ifndef PIXELREADOUTGEOMETRY_PIXELMODULEDESIGN_H
13 #define PIXELREADOUTGEOMETRY_PIXELMODULEDESIGN_H
14 
15 // Base class
17 
18 // Data member classes
22 
23 // Other includes
26 
27 #include <memory>
28 
29 namespace Trk{
30  class SurfaceBounds;
31 }
32 
33 namespace InDetDD {
34 
46 
48  // Public methods:
50  public:
51 
53  // Constructors/destructor:
55 
68  PixelModuleDesign(const double thickness,
69  const int circuitsPerColumn,
70  const int circuitsPerRow,
71  const int cellColumnsPerCircuit,
72  const int cellRowsPerCircuit,
73  const int diodeColumnsPerCircuit,
74  const int diodeRowsPerCircuit,
75  PixelDiodeTree &&diode_tree,
77  int readoutSide /*= -1*/,
78  bool is3D/*=false*/,
79  InDetDD::DetectorType detectorType/* = InDetDD::Undefined*/,
80  PixelReadoutTechnology readoutTechnology);
81 
82 //Allow also setting of symmetry parameters
83  PixelModuleDesign(const double thickness,
84  const bool phiSymmetric,
85  const bool etaSymmetric,
86  const bool depthSymmetric,
87  const int circuitsPerColumn,
88  const int circuitsPerRow,
89  const int cellColumnsPerCircuit,
90  const int cellRowsPerCircuit,
91  const int diodeColumnsPerCircuit,
92  const int diodeRowsPerCircuit,
93  PixelDiodeTree &&diode_tree,
95  int readoutSide,
96  bool is3D,
97  InDetDD::DetectorType detectorType,
98  PixelReadoutTechnology readoutTechnology);
99 
100  // Destructor:
101  virtual ~PixelModuleDesign() = default;
102 
104  // Const methods:
106 
110  virtual void distanceToDetectorEdge(const SiLocalPosition & localPosition,
111  double & etaDist, double & phiDist) const;
112 
114  virtual SiDiodesParameters parameters(const SiCellId & cellId) const;
115  virtual SiLocalPosition localPositionOfCell(const SiCellId & cellId) const;
116 
118  virtual int numberOfConnectedCells(const SiReadoutCellId & readoutId) const;
119  virtual SiCellId connectedCell(const SiReadoutCellId & readoutId, int number) const;
120 
122  virtual SiCellId gangedCell(const SiCellId & cellId) const;
123 
125  virtual SiReadoutCellId readoutIdOfCell(const SiCellId & cellId) const;
126 
128  virtual SiReadoutCellId readoutIdOfPosition(const SiLocalPosition & localPos) const;
129  virtual SiCellId cellIdOfPosition(const SiLocalPosition & localPos) const;
130 
132  virtual SiCellId cellIdInRange(const SiCellId & cellId) const;
133 
135  bool isInsideMatrix(const SiCellId &cellId) const;
137  bool isInsideMatrix(const std::array<InDetDD::PixelDiodeTree::IndexType,2> &idx) const;
139  bool isInsideMatrix(const Amg::Vector2D &local_position) const;
140 
142  virtual HepGeom::Vector3D<double> phiMeasureSegment(const SiLocalPosition&) const;
143 
145  virtual std::pair<SiLocalPosition,SiLocalPosition> endsOfStrip(const SiLocalPosition &position) const;
146 
151  SiLocalPosition positionFromColumnRow(const int column, const int row) const;
152 
156  virtual void neighboursOfCell(const SiCellId & cellId,
157  std::vector<SiCellId> &neighbours) const;
158 
163  double intersectionLength(const SiCellId &diode1, const SiCellId &diode2) const;
164 
166  int numberOfDiodes() const;
167 
169  int numberOfCircuits() const;
170 
172  int numberOfCircuitsPerColumn() const;
173 
175  int numberOfCircuitsPerRow() const;
176 
178  int columnsPerCircuit() const;
179 
181  int rowsPerCircuit() const;
182 
184  int columns() const;
185 
187  int rows() const;
188 
190  virtual double length() const;
191 
193  virtual double width() const;
194 
196  virtual double minWidth() const;
197 
199  virtual double maxWidth() const;
200 
202  virtual double phiPitch() const;
203 
205  virtual double phiPitch(const SiLocalPosition & localPosition) const;
206 
208  virtual double etaPitch() const;
209 
211  double widthFromColumnRange(const int colMin, const int colMax) const;
212 
214  double widthFromRowRange(const int rowMin, const int rowMax) const;
215 
218  virtual bool nearBondGap(const SiLocalPosition & localPosition, double etaTol) const;
219 
221  virtual bool swapHitPhiReadoutDirection() const;
222  virtual bool swapHitEtaReadoutDirection() const;
223 
225  virtual const Trk::SurfaceBounds & bounds() const;
226 
227  virtual bool is3D() const;
228 
230 
231  virtual DetectorType type() const final;
232 
234  // Non-const methods:
236 
237 
242  void addMultipleRowConnection(const int lowerRow,
243  const std::vector<int> &connections);
244 
246  std::string debugStringRepr() const;
247 
250  }
251  PixelDiodeTree::DiodeProxyWithPosition diodeProxyFromIdxCachePosition(const std::array<PixelDiodeTree::IndexType,2> &idx) const {
253  }
256  }
257 
258  static unsigned int getFE(const PixelDiodeTree::DiodeProxy &diode_proxy) {
259  return diode_proxy.subMatrixAttribute();
260  }
262  return static_cast<InDetDD::PixelDiodeType>(diode_proxy.diodeAttribute());
263  }
264 
266  // Private methods:
268  private:
269 
271 
272  // Copy constructor:
274 
275  // Assignment operator:
277 
278 
280  // Private data:
282  private:
288  bool m_is3D;
289  };
290 
292  // Inline methods:
294 
295  inline void PixelModuleDesign::addMultipleRowConnection(const int lowerRow,
296  const std::vector<int> &connections)
297  {
298  m_readoutScheme.addMultipleRowConnection(lowerRow,connections);
299  }
300 
302  {
304  }
305 
307  {
309  }
310 
312  {
314  }
315 
317  {
319  }
320 
322  {
324  }
325 
327  {
329  }
330 
331  inline int PixelModuleDesign::columns() const
332  {
333  return m_readoutScheme.columns();
334  }
335 
336  inline int PixelModuleDesign::rows() const
337  {
338  return m_readoutScheme.rows();
339  }
340 
341  inline bool PixelModuleDesign::nearBondGap(const SiLocalPosition &, double) const
342  {
343  // No bond gap in pixel module
344  return false;
345  }
346 
348  {
349  return true;
350  }
351 
353  {
354  return true;
355  }
356 
357 
358  inline void PixelModuleDesign::neighboursOfCell(const SiCellId & cellId,
359  std::vector<SiCellId> &neighbours) const
360  {
361 
364  neighbours);
365  }
366 
367  inline double PixelModuleDesign::intersectionLength(const SiCellId &diode1,
368  const SiCellId &diode2) const
369  {
371  diode1.etaIndex()));
372  std::array<int,2> abs_delta;
373  abs_delta[0] = std::abs(diode1.phiIndex() - diode2.phiIndex());
374  abs_delta[1] = std::abs(diode1.etaIndex() - diode2.etaIndex());
375 
376  if (abs_delta[0]+abs_delta[1]==1) {
377  // i.e. delta[0]=1 or delta[1]=1 since delta[0]>=0 and delta[1]>=0
378  // diode1_proxy.width()[1] for delta[0]==1 && delta[1]==0 <= delta[0]==1 because sum delta[i]=1
379  // diode1_proxy.width()[0] for delta[0]==0 && delta[1]==1 <= delta[0]!=1
380  // ==
381  return diode1_proxy.width() [ abs_delta[0]==1 ];
382  }
383  return 0.;
384  }
385 
386  inline bool PixelModuleDesign::is3D() const
387  {
388  return m_is3D;
389  }
390 
392  return m_readoutTechnology;
393  }
394 
395  inline std::string PixelModuleDesign::debugStringRepr() const
396  {
397  return m_diodeTree.debugStringRepr();
398  }
399 
400  inline bool PixelModuleDesign::isInsideMatrix(const SiCellId &cellId) const {
401  return m_diodeTree.isInsideMatrix( std::array<PixelDiodeTree::CellIndexType,2>{cellId.phiIndex(),
402  cellId.etaIndex()});
403  }
404  inline bool PixelModuleDesign::isInsideMatrix(const std::array<PixelDiodeTree::IndexType,2> &idx) const {
406  }
407  inline bool PixelModuleDesign::isInsideMatrix(const Amg::Vector2D &local_position) const {
408  return m_diodeTree.isInsideMatrix(local_position);
409  }
410 
411 } // namespace InDetDD
412 
413 #endif // READOUTGEOMETRYBASE_PIXELMODULEDESIGN_H
InDetDD::PixelReadoutScheme::rowsPerCircuit
int rowsPerCircuit() const
number of cell rows per circuit:
Definition: PixelReadoutScheme.h:159
InDetDD::PixelDiodeTree
Tree structure to find the position, index or pitch of a pixel on a semi-regular grid The grid is con...
Definition: PixelDiodeTree.h:33
InDetDD::PixelReadoutScheme::columns
int columns() const
number of cell columns per module:
Definition: PixelReadoutScheme.h:164
InDetDD::PixelModuleDesign::m_readoutTechnology
PixelReadoutTechnology m_readoutTechnology
Definition: PixelModuleDesign.h:287
InDetDD::DetectorDesign::depthSymmetric
bool depthSymmetric() const
Definition: DetectorDesign.h:287
InDetDD::PixelReadoutTechnology
PixelReadoutTechnology
Definition: PixelReadoutDefinitions.h:37
InDetDD::PixelDiodeTree::DiodeProxy::width
const PixelDiodeTree::Vector2D & width() const
get the width stored for this diode.
Definition: PixelDiodeTree.h:195
InDetDD::DetectorDesign::thickness
double thickness() const
Method which returns thickness of the silicon wafer.
Definition: DetectorDesign.h:271
InDetDD::DetectorDesign::etaSymmetric
bool etaSymmetric() const
Definition: DetectorDesign.h:283
InDetDD::PixelDiodeTree::neighboursOfCell
static void neighboursOfCell(const std::array< CellIndexType, 2 > &idx, const std::array< CellIndexType, 2 > &max_idx, std::vector< T_CellID > &neighbours)
Get indices of all adjacent cells.
Definition: PixelDiodeTree.h:389
InDetDD::PixelModuleDesign::width
virtual double width() const
Method to calculate average width of a module.
Definition: PixelModuleDesign.cxx:148
RectangleBounds.h
InDetDD::PixelModuleDesign::widthFromRowRange
double widthFromRowRange(const int rowMin, const int rowMax) const
Method to calculate phi width from a row range.
Definition: PixelModuleDesign.cxx:179
InDetDD::PixelModuleDesign
Definition: PixelModuleDesign.h:45
InDetDD::PixelModuleDesign::columns
int columns() const
Number of cell columns per module:
Definition: PixelModuleDesign.h:331
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Trk::SurfaceBounds
Definition: SurfaceBounds.h:47
InDetDD::PixelModuleDesign::intersectionLength
double intersectionLength(const SiCellId &diode1, const SiCellId &diode2) const
Compute the intersection length of two diodes: return: the intersection length when the two diodes ar...
Definition: PixelModuleDesign.h:367
InDetDD::PixelDiodeTree::diodeProxyFromIdxCachePosition
DiodeProxyWithPosition diodeProxyFromIdxCachePosition(const std::array< CellIndexType, 2 > &idx) const
find a diode by its 2D index (row, column) and compute the position of the diode the returned proxy c...
Definition: PixelDiodeTree.h:276
CxxUtils::CachedUniquePtrT
Cached pointer with atomic update.
Definition: CachedUniquePtr.h:54
InDetDD::PixelModuleDesign::diodeProxyFromPosition
PixelDiodeTree::DiodeProxy diodeProxyFromPosition(const Amg::Vector2D &pos) const
Definition: PixelModuleDesign.h:254
InDetDD::PixelModuleDesign::rows
int rows() const
Number of cell rows per module:
Definition: PixelModuleDesign.h:336
InDetDD::PixelDiodeType
PixelDiodeType
Definition: PixelReadoutDefinitions.h:28
InDetDD::PixelModuleDesign::cellIdInRange
virtual SiCellId cellIdInRange(const SiCellId &cellId) const
Check if cell is in range.
Definition: PixelModuleDesign.cxx:276
InDetDD::PixelModuleDesign::connectedCell
virtual SiCellId connectedCell(const SiReadoutCellId &readoutId, int number) const
readout id -> id of connected diodes.
Definition: PixelModuleDesign.cxx:230
DeMoUpdate.column
dictionary column
Definition: DeMoUpdate.py:1110
InDetDD::DetectorDesign::readoutSide
int readoutSide() const
ReadoutSide.
Definition: DetectorDesign.h:291
InDetDD::PixelDiodeTree::diodeProxyFromPos
DiodeProxy diodeProxyFromPos(const Vector2D &pos) const
Find a diode by the position relative to the center of the full diode matrix.
Definition: PixelDiodeTree.h:288
InDetDD::DetectorDesign::carrierType
InDetDD::CarrierType carrierType() const
Return carrier type (ie electrons or holes)
Definition: DetectorDesign.h:275
keylayer_zslicemap.row
row
Definition: keylayer_zslicemap.py:155
InDetDD::SiCellId::phiIndex
int phiIndex() const
Get phi index. Equivalent to strip().
Definition: SiCellId.h:122
InDetDD::PixelModuleDesign::PixelModuleDesign
PixelModuleDesign(const PixelModuleDesign &design)
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
InDetDD::PixelModuleDesign::getFE
static unsigned int getFE(const PixelDiodeTree::DiodeProxy &diode_proxy)
Definition: PixelModuleDesign.h:258
InDetDD::PixelModuleDesign::diodeProxyFromIdx
PixelDiodeTree::DiodeProxy diodeProxyFromIdx(const std::array< PixelDiodeTree::IndexType, 2 > &idx) const
Definition: PixelModuleDesign.h:248
InDetDD::PixelReadoutScheme::numberOfCircuitsPerColumn
int numberOfCircuitsPerColumn() const
number of circuits per column:
Definition: PixelReadoutScheme.h:144
InDetDD::PixelModuleDesign::diodeProxyFromIdxCachePosition
PixelDiodeTree::DiodeProxyWithPosition diodeProxyFromIdxCachePosition(const std::array< PixelDiodeTree::IndexType, 2 > &idx) const
Definition: PixelModuleDesign.h:251
InDetDD::PixelReadoutScheme
Definition: PixelReadoutScheme.h:35
InDetDD::PixelModuleDesign::swapHitPhiReadoutDirection
virtual bool swapHitPhiReadoutDirection() const
Return true if hit local direction is the same as readout direction.
Definition: PixelModuleDesign.h:347
InDetDD::PixelModuleDesign::operator=
PixelModuleDesign & operator=(const PixelModuleDesign &design)
InDetDD::PixelModuleDesign::etaPitch
virtual double etaPitch() const
Pitch in eta direction.
Definition: PixelModuleDesign.cxx:208
PixelReadoutScheme.h
InDetDD::PixelReadoutScheme::columnsPerCircuit
int columnsPerCircuit() const
number of cell columns per circuit:
Definition: PixelReadoutScheme.h:154
InDetDD::PixelModuleDesign::bounds
virtual const Trk::SurfaceBounds & bounds() const
Element boundary.
Definition: PixelModuleDesign.cxx:267
InDetDD::PixelModuleDesign::length
virtual double length() const
Method to calculate length of a module.
Definition: PixelModuleDesign.cxx:142
InDetDD::PixelReadoutScheme::numberOfCircuitsPerRow
int numberOfCircuitsPerRow() const
number of circuits per row:
Definition: PixelReadoutScheme.h:149
InDetDD::PixelModuleDesign::getDiodeType
static InDetDD::PixelDiodeType getDiodeType(const PixelDiodeTree::DiodeProxy &diode_proxy)
Definition: PixelModuleDesign.h:261
InDetDD::SiLocalPosition
Definition: SiLocalPosition.h:31
InDetDD::PixelModuleDesign::positionFromColumnRow
SiLocalPosition positionFromColumnRow(const int column, const int row) const
Given row and column index of a diode, return position of diode center ALTERNATIVE/PREFERED way is to...
Definition: PixelModuleDesign.cxx:260
InDetDD::PixelModuleDesign::debugStringRepr
std::string debugStringRepr() const
Debug string representation.
Definition: PixelModuleDesign.h:395
InDetDD::PixelModuleDesign::phiPitch
virtual double phiPitch() const
Pitch in phi direction.
Definition: PixelModuleDesign.cxx:192
InDetDD::PixelModuleDesign::nearBondGap
virtual bool nearBondGap(const SiLocalPosition &localPosition, double etaTol) const
Test if near bond gap within tolerances Only relevant for SCT.
Definition: PixelModuleDesign.h:341
InDetDD::PixelDiodeTree::DiodeProxyWithPosition
A diode proxy which caches the position of a diode.
Definition: PixelDiodeTree.h:230
InDetDD::PixelModuleDesign::m_is3D
bool m_is3D
Definition: PixelModuleDesign.h:288
ActsTrk::IndexType
std::uint32_t IndexType
Definition: Decoration.h:14
InDetDD::PixelModuleDesign::widthFromColumnRange
double widthFromColumnRange(const int colMin, const int colMax) const
Method to calculate eta width from a column range.
Definition: PixelModuleDesign.cxx:167
InDetDD::SiCellId::etaIndex
int etaIndex() const
Get eta index.
Definition: SiCellId.h:114
InDetDD::DetectorType
DetectorType
Definition: DetectorDesign.h:45
InDetDD::PixelModuleDesign::m_detectorType
InDetDD::DetectorType m_detectorType
Definition: PixelModuleDesign.h:286
InDetDD::PixelModuleDesign::numberOfCircuitsPerColumn
int numberOfCircuitsPerColumn() const
Number of circuits per column:
Definition: PixelModuleDesign.h:311
vector
Definition: MultiHisto.h:13
InDetDD::PixelModuleDesign::numberOfCircuits
int numberOfCircuits() const
Total number of circuits:
Definition: PixelModuleDesign.h:306
InDetDD::PixelModuleDesign::distanceToDetectorEdge
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const
Returns distance to nearest detector active edge +ve = inside -ve = outside.
Definition: PixelModuleDesign.cxx:88
CachedUniquePtr.h
Cached unique_ptr with atomic update.
InDetDD::PixelModuleDesign::localPositionOfCell
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
readout or diode id -> position.
Definition: PixelModuleDesign.cxx:117
InDetDD::PixelModuleDesign::swapHitEtaReadoutDirection
virtual bool swapHitEtaReadoutDirection() const
Definition: PixelModuleDesign.h:352
InDetDD::PixelModuleDesign::readoutIdOfPosition
virtual SiReadoutCellId readoutIdOfPosition(const SiLocalPosition &localPos) const
position -> id
Definition: PixelModuleDesign.cxx:249
InDetDD::PixelModuleDesign::m_bounds
CxxUtils::CachedUniquePtr< Trk::RectangleBounds > m_bounds
Definition: PixelModuleDesign.h:285
InDetDD::PixelModuleDesign::isInsideMatrix
bool isInsideMatrix(const SiCellId &cellId) const
Return true if the given index describes a pixel of this matrix.
Definition: PixelModuleDesign.h:400
InDetDD::PixelModuleDesign::phiMeasureSegment
virtual HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &) const
Helper method for stereo angle computation.
Definition: PixelModuleDesign.cxx:127
InDetDD::PixelModuleDesign::m_diodeTree
PixelDiodeTree m_diodeTree
Definition: PixelModuleDesign.h:283
InDetDD::PixelDiodeTree::diodeProxyFromIdx
DiodeProxy diodeProxyFromIdx(const std::array< CellIndexType, 2 > &idx) const
find a diode by its 2D index (row, column) the returned proxy allows to compute the position and prov...
Definition: PixelDiodeTree.h:270
lumiFormat.array
array
Definition: lumiFormat.py:91
InDetDD::PixelModuleDesign::numberOfDiodes
int numberOfDiodes() const
Total number of diodes:
Definition: PixelModuleDesign.h:301
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDetDD::PixelModuleDesign::numberOfCircuitsPerRow
int numberOfCircuitsPerRow() const
Number of circuits per row:
Definition: PixelModuleDesign.h:316
InDetDD::PixelModuleDesign::numberOfConnectedCells
virtual int numberOfConnectedCells(const SiReadoutCellId &readoutId) const
readout id -> id of connected diodes
Definition: PixelModuleDesign.cxx:224
python.selection.number
number
Definition: selection.py:20
InDetDD::PixelReadoutScheme::addMultipleRowConnection
void addMultipleRowConnection(const int lowerRow, const std::vector< int > &connections)
Add a new multiple connection for rows: lower diode row for which the connection scheme is given vect...
Definition: PixelReadoutScheme.cxx:102
InDetDD::PixelDiodeTree::debugStringRepr
std::string debugStringRepr() const
Dump the diode tree structure into a string.
Definition: PixelDiodeTree.cxx:97
InDetDD::PixelModuleDesign::getReadoutTechnology
PixelReadoutTechnology getReadoutTechnology() const
Definition: PixelModuleDesign.h:391
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
InDetDD::SiCellId
Definition: SiCellId.h:29
InDetDD::PixelModuleDesign::gangedCell
virtual SiCellId gangedCell(const SiCellId &cellId) const
If cell is ganged return the other cell, otherwise return an invalid id.
Definition: PixelModuleDesign.cxx:236
InDetDD::PixelDiodeTree::isInsideMatrix
bool isInsideMatrix(const std::array< PixelDiodeTree::IndexType, 2 > &idx) const
Return true if the given index describes a valid location inside the matrix.
Definition: PixelDiodeTree.h:359
PixelReadoutDefinitions.h
InDetDD::PixelModuleDesign::is3D
virtual bool is3D() const
Definition: PixelModuleDesign.h:386
InDetDD::CarrierType
CarrierType
Definition: InDetDD_Defs.h:17
InDetDD::PixelDiodeTree::DiodeProxy
Helper class to access parameters of a diode.
Definition: PixelDiodeTree.h:183
InDetDD::PixelModuleDesign::rowsPerCircuit
int rowsPerCircuit() const
Number of cell rows per circuit:
Definition: PixelModuleDesign.h:326
InDetDD::PixelModuleDesign::m_readoutScheme
PixelReadoutScheme m_readoutScheme
Definition: PixelModuleDesign.h:284
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDetDD::PixelModuleDesign::parameters
virtual SiDiodesParameters parameters(const SiCellId &cellId) const
readout or diode id -> position, size
Definition: PixelModuleDesign.cxx:107
InDetDD::DetectorDesign::phiSymmetric
bool phiSymmetric() const
Definition: DetectorDesign.h:279
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
InDetDD::PixelDiodeTree::DiodeProxy::diodeAttribute
unsigned int diodeAttribute() const
get the attribute associated to this diode (to be interpreted)
Definition: PixelDiodeTree.h:205
InDetDD::PixelModuleDesign::addMultipleRowConnection
void addMultipleRowConnection(const int lowerRow, const std::vector< int > &connections)
Add a new multiple connection for rows: lower diode row for which the connection scheme is given vect...
Definition: PixelModuleDesign.h:295
InDetDD::PixelReadoutScheme::rows
int rows() const
number of cell rows per module:
Definition: PixelReadoutScheme.h:169
InDetDD::PixelModuleDesign::~PixelModuleDesign
virtual ~PixelModuleDesign()=default
InDetDD::PixelModuleDesign::cellIdOfPosition
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
Definition: PixelModuleDesign.cxx:214
InDetDD::PixelModuleDesign::neighboursOfCell
virtual void neighboursOfCell(const SiCellId &cellId, std::vector< SiCellId > &neighbours) const
Get the neighbouring diodes of a given diode: Cell for which the neighbours must be found List of cel...
Definition: PixelModuleDesign.h:358
InDetDD::PixelModuleDesign::PixelModuleDesign
PixelModuleDesign()
InDetDD::PixelModuleDesign::readoutIdOfCell
virtual SiReadoutCellId readoutIdOfCell(const SiCellId &cellId) const
diode id -> readout id
Definition: PixelModuleDesign.cxx:242
InDetDD::SiReadoutCellId
Definition: SiReadoutCellId.h:42
InDetDD::PixelDiodeTree::makeCellIndex
static constexpr std::array< PixelDiodeTree::CellIndexType, 2 > makeCellIndex(T local_x_idx, T local_y_idx)
Create a 2D cell index from the indices in local-x (phi, row) and local-y (eta, column) direction.
Definition: PixelDiodeTree.h:320
InDetDD::SiDetectorDesign
Definition: SiDetectorDesign.h:50
InDetDD::PixelModuleDesign::minWidth
virtual double minWidth() const
Method to calculate minimum width of a module.
Definition: PixelModuleDesign.cxx:154
InDetDD::PixelModuleDesign::endsOfStrip
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const
Special method for SCT (irrelevant here):
Definition: PixelModuleDesign.cxx:135
InDetDD::PixelReadoutScheme::numberOfCircuits
int numberOfCircuits() const
total number of circuits:
Definition: PixelReadoutScheme.h:139
InDetDD::PixelModuleDesign::maxWidth
virtual double maxWidth() const
Method to calculate maximum width of a module.
Definition: PixelModuleDesign.cxx:160
PixelDiodeTree.h
InDetDD::PixelModuleDesign::columnsPerCircuit
int columnsPerCircuit() const
Number of cell columns per circuit:
Definition: PixelModuleDesign.h:321
SiDetectorDesign.h
InDetDD::PixelModuleDesign::type
virtual DetectorType type() const final
Type of element.
Definition: PixelModuleDesign.cxx:281
InDetDD::PixelDiodeTree::DiodeProxy::subMatrixAttribute
unsigned int subMatrixAttribute() const
get the attribute associated to the sub-matrix of this diode (to be interpreted)
Definition: PixelDiodeTree.h:210
InDetDD::SiDiodesParameters
Definition: SiDiodesParameters.h:25