58 std::vector<DetId> ids;
63 edm::LogVerbatim(
"HGCalGeom") <<
"Type:WaferU:WaferV " <<
id.iType <<
":" <<
id.iCell1 <<
":" <<
id.iCell2
73 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2);
74 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 - 1);
75 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2 - 1);
76 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2);
77 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 + 1);
78 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2 + 1);
83 int wu1(
id.iSec1), wv1(
id.iSec2 - 1);
89 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" << v1;
91 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2);
92 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 - 1);
93 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, 2 * N1 - 1, v1 + N1 - 1);
94 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, 2 * N1 - 1, v1 + N1);
95 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 + 1);
96 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2 + 1);
101 int wu1(
id.iSec1 + 1), wv1(
id.iSec2);
107 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" <<
u1;
109 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2);
110 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, u1 + N1, 2 * N1 - 1);
111 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, u1 + N1 - 1, 2 * N1 - 1);
112 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2);
113 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 + 1);
114 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2 + 1);
119 int wu1(
id.iSec1 + 1), wv1(
id.iSec2 + 1);
125 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" << v1;
127 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, v1 + 1, v1 + N1);
128 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, v1, v1 + N1 - 1);
129 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2 - 1);
130 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2);
131 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 + 1);
132 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2 + 1);
137 int wu1(
id.iSec1), wv1(
id.iSec2 + 1);
143 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" << v1;
145 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, 0, v1 - N1);
146 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 - 1);
147 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2 - 1);
148 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2);
149 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 + 1);
150 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, 0, v1 - N1 + 1);
155 int wu1(
id.iSec1 - 1), wv1(
id.iSec2);
161 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" <<
u1;
163 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2);
164 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 - 1);
165 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2 - 1);
166 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2);
167 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, u1 - N1, 0);
168 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, u1 - N1 + 1, 0);
173 int wu1(
id.iSec1 - 1), wv1(
id.iSec2 - 1);
179 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" <<
u1;
181 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2);
182 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 - 1);
183 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2 - 1);
184 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, u1 + N1 - 1, u1 - 1);
185 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, u1 + N1, u1);
186 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2 + 1);
191 int wu1(
id.iSec1), wv1(
id.iSec2 - 1);
195 int wu2(
id.iSec1 - 1), wv2(
id.iSec2 - 1);
201 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" << v1 <<
":" << t2
202 <<
":" << N2 <<
":" <<
u2;
204 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2);
205 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 - 1);
206 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, 2 * N1 - 1, v1 + N1 - 1);
207 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, 2 * N1 - 1, v1 + N1);
208 addHGCSiliconId(ids,
id.det,
id.zSide, t2,
id.iLay, wu2, wv2, u2 + N2, u2);
209 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2 + 1);
214 int wu1(
id.iSec1 + 1), wv1(
id.iSec2);
218 int wu2(
id.iSec1), wv2(
id.iSec2 - 1);
224 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" << u1 <<
":" << t2
225 <<
":" << N2 <<
":" << v2;
227 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2);
228 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, u1 + N1, 2 * N1 - 1);
229 addHGCSiliconId(ids,
id.det,
id.zSide, t2,
id.iLay, wu2, wv2, 2 * N2 - 1, v2 + N2 - 1);
230 addHGCSiliconId(ids,
id.det,
id.zSide, t2,
id.iLay, wu2, wv2, 2 * N2 - 1, v2 + N2);
231 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 + 1);
232 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2 + 1);
237 int wu1(
id.iSec1 + 1), wv1(
id.iSec2 + 1);
241 int wu2(
id.iSec1 + 1), wv2(
id.iSec2);
247 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" << v1 <<
":" << t2
248 <<
":" << N2 <<
":" <<
u2;
250 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, v1 + 1, N1 + v1);
251 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, v1, N1 + v1 - 1);
252 addHGCSiliconId(ids,
id.det,
id.zSide, t2,
id.iLay, wu2, wv2, u2 + N2 - 1, 2 * N2 - 1);
253 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2);
254 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 + 1);
255 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2 + 1);
260 int wu1(
id.iSec1 + 1), wv1(
id.iSec2 + 1);
264 int wu2(
id.iSec1), wv2(
id.iSec2 + 1);
270 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" << v1 <<
":" << t2
271 <<
":" << N2 <<
":" << v2;
273 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, v1 + 1, v1 + N1);
274 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, v1, v1 + N1 - 1);
275 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2 - 1);
276 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2);
277 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 + 1);
278 addHGCSiliconId(ids,
id.det,
id.zSide, t2,
id.iLay, wu2, wv2, 0, v2 - N2 + 1);
283 int wu1(
id.iSec1), wv1(
id.iSec2 + 1);
287 int wu2(
id.iSec1 - 1), wv2(
id.iSec2);
293 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" << v1 <<
":" << t2
294 <<
":" << N2 <<
":" <<
u2;
296 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, 0, v1 - N1);
297 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 - 1);
298 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2 - 1);
299 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2);
300 addHGCSiliconId(ids,
id.det,
id.zSide, t2,
id.iLay, wu2, wv2, u2 - N2, 0);
301 addHGCSiliconId(ids,
id.det,
id.zSide, t2,
id.iLay, wu2, wv2, u2 - N2 + 1, 0);
306 int wu1(
id.iSec1 - 1), wv1(
id.iSec2 - 1);
310 int wu2(
id.iSec1 - 1), wv2(
id.iSec2);
316 <<
":" << wu1 <<
":" << wv1 <<
":" << t1 <<
":" << N1 <<
":" << u1 <<
":" << t2
317 <<
":" << N2 <<
":" <<
u2;
319 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 + 1,
id.iCell2);
320 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1,
id.iCell2 - 1);
321 addHGCSiliconId(ids,
id.det,
id.zSide,
id.iType,
id.iLay,
id.iSec1,
id.iSec2,
id.iCell1 - 1,
id.iCell2 - 1);
322 addHGCSiliconId(ids,
id.det,
id.zSide, t1,
id.iLay, wu1, wv1, u1 + N1 - 1, u1 - 1);
323 addHGCSiliconId(ids,
id.det,
id.zSide, t2,
id.iLay, wu2, wv2, u2 - N2, 0);
324 addHGCSiliconId(ids,
id.det,
id.zSide, t2,
id.iLay, wu2, wv2, u2 - N2 + 1, 0);
330 edm::LogWarning(
"HGCalGeom") <<
"u:v " <<
id.iCell1 <<
":" <<
id.iCell2 <<
" Tests " << (
id.iCell1 > 2 * N - 1)
331 <<
":" << (
id.iCell2 > 2 * N - 1) <<
":" << (
id.iCell2 >= (
id.iCell1 +
N)) <<
":"
332 << (
id.iCell1 > (
id.iCell2 +
N)) <<
" ERROR";
335 int iphi1 = (
id.iCell1 > 1) ?
id.iCell1 - 1 :
hdcons_.
getUVMax(
id.iType);
336 int iphi2 = (
id.iCell1 <
hdcons_.
getUVMax(
id.iType)) ?
id.iCell1 + 1 : 1;
353 int type = (
id.iType > 0) ? 1 : 0;
357 edm::LogVerbatim(
"HGCalGeom") <<
"Input Hex " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iSec1 <<
":" <<
id.iCell1
366 edm::LogVerbatim(
"HGCalGeom") <<
"Input Trap " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iSec1 <<
":" <<
id.iCell1
379 edm::LogVerbatim(
"HGCalGeom") <<
"Input Hex8 " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iSec1 <<
":" <<
id.iSec2
380 <<
":" <<
id.iCell1 <<
":" <<
id.iCell2 <<
":" <<
id.iType <<
" Constants "
395 id.iType = (type == 0 ? -1 : 1);
400 edm::LogVerbatim(
"HGCalGeom") <<
"Input Hex " << hi <<
" o/p " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iType
401 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1;
410 edm::LogVerbatim(
"HGCalGeom") <<
"Input Trap " << hi <<
" o/p " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iType
411 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1;
422 di = (di -
id.iLay + 1) /
layers_;
424 id.iCell1 = (di -
id.iCell2) /
cellMax_;
426 edm::LogVerbatim(
"HGCalGeom") <<
"Input Hex8 " << hi <<
" o/p " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iType
427 <<
":" <<
id.iSec1 <<
":" <<
id.iSec2 <<
":" <<
id.iCell1 <<
":" <<
id.iCell2;
438 idx = (uint32_t)(((
id.zSide > 0) ?
kHGeomHalf_ : 0) + (
id.iLay - 1) *
sectors_ +
id.iSec1);
440 edm::LogVerbatim(
"HGCalGeom") <<
"Geom Hex I/P " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iSec1 <<
":" <<
id.iType
445 idx = (uint32_t)(((
id.zSide > 0) ?
kHGeomHalf_ : 0) +
448 edm::LogVerbatim(
"HGCalGeom") <<
"Geom Trap I/P " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iSec1 <<
":"
453 idx = (uint32_t)(((
id.zSide > 0) ?
kHGeomHalf_ : 0) +
456 edm::LogVerbatim(
"HGCalGeom") <<
"Geom Hex8 I/P " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iSec1 <<
":"
469 id.iLay > 0 &&
id.iLay <=
layers_ &&
id.iSec1 >= 0 &&
id.iSec1 <=
sectors_);
484 bool flag = ((idin.
det() ==
det_) &&
487 return (flag && (!mask));
532 id.iType = ((di -
id.iLay + 1) /
layers_ == 0) ? -1 : 1;
534 edm::LogVerbatim(
"HGCalGeom") <<
"Geom Hex I/P " << hi <<
" O/P " <<
id.zSide <<
":" <<
id.iType <<
":" <<
id.iLay
539 di = (di -
id.iCell1 + 1) /
cellMax_;
541 di = (di -
id.iSec1 + 1) /
sectors_;
545 edm::LogVerbatim(
"HGCalGeom") <<
"Geom Trap I/P " << hi <<
" O/P " <<
id.zSide <<
":" <<
id.iType <<
":"
546 <<
id.iLay <<
":" <<
id.iSec1 <<
":" <<
id.iCell1;
554 id.iType = (di -
id.iLay + 1) /
layers_;
556 edm::LogVerbatim(
"HGCalGeom") <<
"Geom Hex8 I/P " << hi <<
" O/P " <<
id.zSide <<
":" <<
id.iType <<
":"
557 <<
id.iLay <<
":" <<
id.iSec1 <<
":" <<
id.iSec2;
565 std::vector<DetId>& ids,
int zside,
int type,
int lay,
int iradius,
int iphi)
const {
567 edm::LogVerbatim(
"HGCalGeom") <<
"addHGCSCintillatorId " << zside <<
":" << type <<
":" << lay <<
":" << iradius
572 ids.emplace_back(
DetId(
id));
577 std::vector<DetId>& ids,
int det,
int zside,
int type,
int lay,
int waferU,
int waferV,
int cellU,
int cellV)
const {
579 edm::LogVerbatim(
"HGCalGeom") <<
"addHGCSiliconId " << det <<
":" << zside <<
":" << type <<
":" << lay <<
":"
580 << waferU <<
":" << waferV <<
":" << cellU <<
":" << cellV <<
" ==> Validity "
585 ids.emplace_back(
DetId(
id));
595 idx.
iLay =
id.layer();
596 idx.
iSec1 =
id.wafer();
598 idx.
iType =
id.waferType();
599 idx.
zSide =
id.zside();
600 idx.
det =
id.subdetId();
605 idx.
iLay =
id.layer();
606 idx.
iSec1 =
id.ietaAbs();
608 idx.
iType =
id.type();
609 idx.
zSide =
id.zside();
610 idx.
det = (int)(
id.subdet());
615 idx.
iLay =
id.layer();
616 idx.
iSec1 =
id.waferU();
617 idx.
iSec2 =
id.waferV();
618 idx.
iType =
id.type();
619 idx.
zSide =
id.zside();
620 idx.
det = (int)(
id.subdet());
625 idx.
iLay =
id.layer();
626 idx.
iSec1 =
id.waferU();
627 idx.
iSec2 =
id.waferV();
628 idx.
iType =
id.type();
629 idx.
zSide =
id.zside();
630 idx.
det = (int)(
id.subdet());
648 if (typm.first >= 0) {
Log< level::Info, true > LogVerbatim
bool isValidTrap(int lay, int ieta, int iphi) const
bool validHashIndex(uint32_t ix) const
unsigned int allGeomModules() const
DetId changeXY(const DetId &id, int nrStepsX, int nrStepsY) const
move the nagivator along x, y
uint16_t *__restrict__ id
DetId changeZ(const DetId &id, int nrStepsZ) const
move the nagivator along z
HGCalGeometryMode::GeometryMode mode_
int32_t waferU(const int32_t index)
bool tileTrapezoid() const
bool valid(const DetId &id) const override
Is this a valid cell id.
constexpr uint32_t rawId() const
get the raw id
int getTypeHex(int layer, int waferU, int waferV) const
bool isValidHex(int lay, int mod, int cell, bool reco) const
DetId offsetBy(const DetId startId, int nrStepsX, int nrStepsY) const
unsigned int totalGeomModules() const
unsigned int layers(bool reco) const
bool validModule(const DetId &id, int cornerMin) const
virtual uint32_t detId2denseGeomId(const DetId &id) const
void addHGCSCintillatorId(std::vector< DetId > &ids, int zside, int type, int lay, int iradius, int iphi) const
add DetId of Scintillator and Silicon type if valid
DetId encode(const DecodedDetId &id_) const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
HGCalGeometryMode::GeometryMode geomMode() const
uint32_t detId2denseId(const DetId &id) const override
Dense indexing.
int ring() const
get the eta index
DecodedDetId geomDenseId2decId(const uint32_t &hi) const
ForwardSubdetector subdet_
HGCalTypes::CellType cellType(int type, int waferU, int waferV) const
const HGCalDDDConstants & hdcons_
bool waferHexagon6() const
#define TYPELOOKUP_DATA_REG(_dataclass_)
DecodedDetId decode(const DetId &id) const
bool maskCell(const DetId &id, int corners) const
int numberCells(bool reco) const
bool isValidHex8(int lay, int waferU, int waferV, bool fullAndPart=false) const
DetId switchZSide(const DetId startId) const
void addHGCSiliconId(std::vector< DetId > &ids, int det, int zside, int type, int lay, int waferU, int waferV, int cellU, int cellV) const
int layer() const
get the layer #
std::vector< DetId > neighbors(const DetId &id) const
int32_t waferV(const int32_t index)
unsigned int kSizeForDenseIndexing
bool waferHexagon8() const
DetId denseId2detId(uint32_t denseId) const override
static constexpr int32_t WaferCornerMin
Log< level::Warning, false > LogWarning
std::pair< int, int > tileType(int layer, int ring, int phi) const
HGCalTopology(const HGCalDDDConstants &hdcons, int subdet)
create a new Topology
int maxCells(bool reco) const
int modifyUV(int uv, int type1, int type2) const
int getUVMax(int type) const
constexpr Detector det() const
get the detector field from this detid