ATLAS Offline Software
Loading...
Searching...
No Matches
PixelReadoutScheme.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
6// PixelReadoutScheme.h
8// (c) ATLAS Pixel Detector software
10
11#ifndef READOUTGEOMETRYBASE_PIXELREADOUTSCHEME_H
12#define READOUTGEOMETRYBASE_PIXELREADOUTSCHEME_H
13
14// Data member classes
16
17// Input and output classes
20
21namespace InDetDD {
22
34
36
38 // Public methods:
40 public:
41
43 // Constructors/destructor:
45
54 PixelReadoutScheme(const int circuitsPerColumn,
55 const int circuitsPerRow,
56 const int cellColumnsPerCircuit,
57 const int cellRowsPerCircuit,
58 const int diodeColumnsPerCircuit,
59 const int diodeRowsPerCircuit);
60
63
65 // Const methods:
67
69 int numberOfCircuits() const;
70
72 int numberOfCircuitsPerColumn() const;
73
75 int numberOfCircuitsPerRow() const;
76
78 int columnsPerCircuit() const;
79
81 int rowsPerCircuit() const;
82
84 int columns() const;
85
87 int rows() const;
88
90 int numberOfConnectedCells(const SiReadoutCellId & readoutId) const;
91
93 SiCellId connectedCell(const SiReadoutCellId & readoutId, unsigned int number) const;
94
96 SiReadoutCellId readoutIdOfCell(const SiCellId & cellId) const;
97
99 SiCellId gangedCell(const SiCellId & cellId) const;
100
102 // Non-const methods:
104
109 void addMultipleRowConnection(const int lowerRow, const std::vector<int> &connections);
110
112 // Private methods:
114 private:
115
117
119 // Private data:
121 private:
129 int m_rows;
130
131};
132
134// Inline methods:
138
140{
141 return m_numberOfCircuits;
142}
143
148
153
155{
156 return m_columnsPerCircuit;
157}
158
160{
161 return m_rowsPerCircuit;
162}
163
165{
166 return m_columns;
167}
168
169inline int PixelReadoutScheme::rows() const
170{
171 return m_rows;
172}
173
174} // namespace InDetDD
175
176#endif // READOUTGEOMETRYBASE_PIXELREADOUTSCHEME_H
Class used to handle connection of multiple diodes to the same readout cell.
int numberOfCircuitsPerRow() const
number of circuits per row:
int m_numberOfCircuitsPerColumn
number of circuits per column
int m_numberOfCircuitsPerRow
number of circuits per row
int m_numberOfCircuits
total number of circuits
SiCellId connectedCell(const SiReadoutCellId &readoutId, unsigned int number) const
Cell ids of cell connected to this readout.
SiReadoutCellId readoutIdOfCell(const SiCellId &cellId) const
Readout id of this diode.
PixelMultipleConnection1D m_rowConnections
multiple connections for rows
int m_rowsPerCircuit
number of cell rows per circuit
int m_columns
Number of columns.
int numberOfCircuits() const
total number of circuits:
PixelReadoutScheme(const int circuitsPerColumn, const int circuitsPerRow, const int cellColumnsPerCircuit, const int cellRowsPerCircuit, const int diodeColumnsPerCircuit, const int diodeRowsPerCircuit)
Constructor with parameters:
int rows() const
number of cell rows per module:
SiCellId gangedCell(const SiCellId &cellId) const
If cell is ganged return the other cell, otherwise return an invalid id.
int numberOfCircuitsPerColumn() const
number of circuits per column:
int numberOfConnectedCells(const SiReadoutCellId &readoutId) const
number of cells connected to this readout.
int rowsPerCircuit() const
number of cell rows per circuit:
int columns() const
number of cell columns per module:
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...
int columnsPerCircuit() const
number of cell columns per circuit:
int m_columnsPerCircuit
number of cell columns per circuit
Identifier for the strip or pixel cell.
Definition SiCellId.h:29
Identifier for the strip or pixel readout cell.
Message Stream Member.
std::string number(const double &d, const std::string &s)
Definition utils.cxx:186