24 : PixelGmxInterface(detectorManager, commonItems, moduleTree)
34 if (not pixelIdHelper){
35 ATH_MSG_ERROR(
"Failed dynamic_cast to PLR_ID in PLRGmxInterface::sensorId");
45 <<
index[
"eta_module"] <<
" " <<
index[
"phi_module"] <<
" " <<
index[
"side"]);
50 index[
"barrel_endcap"],
56 <<
index[
"eta_module"] <<
" " <<
index[
"phi_module"] <<
" " <<
index[
"side"]);
57 ATH_MSG_DEBUG(
"hitIdOfModule = " << std::hex << hitIdOfModule << std::dec);
70 const std::map<std::string, std::string>&
parameters)
74 if (clas ==
"SingleChip_RD53" &&
typeName ==
"RD53_20x19_Single_25x100") {
81 std::map<std::string, int> &
index,
89 if (not pixelIdHelper){
90 ATH_MSG_ERROR(
"Failed dynamic_cast to PLR_ID in PLRGmxInterface::addSensor");
107 msg() << MSG::ERROR <<
key <<
" = " <<
value <<
"; ";
110 ATH_MSG_ERROR(
"Refusing to make it into a sensitive element. Incompatible gmx and identifier-xml files.");
120 throw std::runtime_error(
"readout sensor type " +
typeName +
" not found.");
124 if (design ==
nullptr) {
126 throw std::runtime_error(
"readout sensor type " +
typeName +
" not found.");
135 std::string errorMessage(
"");
137 index[
"layer_wheel"],
150 const std::map<std::string, std::string> &
parameters)
152 int circuitsPerEta{1};
153 int circuitsPerPhi{1};
154 double thickness{0.150};
157 double pitchEtaLong{};
158 double pitchPhiLong{};
159 double pitchEtaEnd{};
160 double pitchPhiEnd{};
161 int nEtaLongPerSide{};
162 int nPhiLongPerSide{};
163 int nEtaEndPerSide{};
164 int nPhiEndPerSide{};
166 int columnsPerChip{};
194 std::shared_ptr<const PixelDiodeMatrix> fullMatrix =
buildMatrix(pitchPhi, pitchEta,
195 pitchPhiLong, pitchPhiEnd,
196 pitchEtaLong, pitchEtaEnd,
197 nPhiLongPerSide, nPhiEndPerSide,
198 nEtaLongPerSide, nEtaEndPerSide,
199 circuitsPerPhi, circuitsPerEta,
200 columnsPerChip, rowsPerChip);
202 ATH_MSG_DEBUG(
"fullMatrix = buildMatrix(" << pitchPhi <<
", " << pitchEta <<
", "
203 << pitchPhiLong <<
", " << pitchPhiEnd <<
", "
204 << pitchEtaLong <<
", " << pitchEtaEnd <<
", "
205 << nPhiLongPerSide <<
", " << nPhiEndPerSide <<
", "
206 << nEtaLongPerSide <<
", " << nEtaEndPerSide <<
", "
207 << circuitsPerPhi <<
", " << circuitsPerEta <<
", "
208 << columnsPerChip <<
", " << rowsPerChip <<
")");
210 << circuitsPerPhi <<
" " << circuitsPerEta <<
" "
211 << columnsPerChip <<
" " << rowsPerChip <<
" "
212 << columnsPerChip <<
" " << rowsPerChip <<
" "
213 << carrier <<
" " << readoutSide);
219 auto design = std::make_unique<PixelModuleDesign>(thickness,
220 circuitsPerPhi, circuitsPerEta,
221 columnsPerChip, rowsPerChip,
222 columnsPerChip, rowsPerChip,
224 readoutSide, is3D, detectorType);
227 ATH_MSG_DEBUG(
"readout geo - design : " << design->width() <<
" " << design->length() <<
" " << design->thickness() <<
" " <<design->rows() <<
" " << design->columns());