CMS 3D CMS Logo

TkDetMap.cc
Go to the documentation of this file.
4 
6 
7 // TkLayerMap
8 
9 void TkLayerMap::initMap(const std::vector<uint32_t>& TkDetIdList) {
10  switch (layer_) {
11  case TkLayerMap::TIB_L1:
12  case TkLayerMap::TIB_L2:
13  case TkLayerMap::TIB_L3:
14  case TkLayerMap::TIB_L4:
15  initMap_TIB(TkDetIdList);
16  break;
23  initMap_TID(TkDetIdList);
24  break;
25  case TkLayerMap::TOB_L1:
26  case TkLayerMap::TOB_L2:
27  case TkLayerMap::TOB_L3:
28  case TkLayerMap::TOB_L4:
29  case TkLayerMap::TOB_L5:
30  case TkLayerMap::TOB_L6:
31  initMap_TOB(TkDetIdList);
32  break;
51  initMap_TEC(TkDetIdList);
52  break;
53  default:
54  edm::LogError("TkLayerMap") << " TkLayerMap::requested creation of a wrong layer Nb " << layer_;
55  }
56 }
57 
58 void TkLayerMap::initMap_TIB(const std::vector<uint32_t>& TkDetIdList) {
59  //extract vector of module in the layer
60  std::vector<uint32_t> LayerDetIdList;
61  SiStripSubStructure::getTIBDetectors(TkDetIdList, LayerDetIdList, tTopo_, layer_, 0, 0, 0);
62 
63  LogTrace("TkLayerMap") << "[TkLayerMap::createTIB12] layer " << layer_ << " number of dets " << LayerDetIdList.size()
64  << " lowY " << lowY_ << " high " << highY_ << " Nstring " << nStringExt_;
65 
66  for (uint32_t det : LayerDetIdList) {
67  const auto xyb = getXY_TIB(det);
68  binToDet_[bin(xyb.ix, xyb.iy)] = det;
69 
70  LogTrace("TkLayerMap") << "[TkLayerMap::createTIB] " << det << " " << xyb.ix << " " << xyb.iy << " " << xyb.x << " "
71  << xyb.y;
72  }
73 }
74 
75 void TkLayerMap::initMap_TOB(const std::vector<uint32_t>& TkDetIdList) {
76  //extract vector of module in the layer
77  std::vector<uint32_t> LayerDetIdList;
78  SiStripSubStructure::getTOBDetectors(TkDetIdList, LayerDetIdList, tTopo_, layer_ - 10, 0, 0);
79 
80  LogTrace("TkLayerMap") << "[TkLayerMap::createTOB] layer " << layer_ - 10 << " number of dets "
81  << LayerDetIdList.size() << " lowY " << lowY_ << " high " << highY_ << " Nstring "
82  << nStringExt_;
83 
84  for (uint32_t det : LayerDetIdList) {
85  const auto xyb = getXY_TOB(det);
86  binToDet_[bin(xyb.ix, xyb.iy)] = det;
87 
88  LogTrace("TkLayerMap") << "[TkLayerMap::createTOB] " << det << " " << xyb.ix << " " << xyb.iy << " " << xyb.x << " "
89  << xyb.y;
90  }
91 }
92 
93 void TkLayerMap::initMap_TID(const std::vector<uint32_t>& TkDetIdList) {
94  //extract vector of module in the layer
95  std::vector<uint32_t> LayerDetIdList;
97  LayerDetIdList,
98  tTopo_,
99  (layer_ - TkLayerMap::TIDM_D1) / 3 + 1,
100  (layer_ - TkLayerMap::TIDM_D1) % 3 + 1,
101  0,
102  0);
103 
104  LogTrace("TkLayerMap") << "[TkLayerMap::createTID] layer side " << (layer_ - TkLayerMap::TIDM_D1) / 3 + 1 << " nb "
105  << (layer_ - TkLayerMap::TIDM_D1) % 3 + 1 << " number of dets " << LayerDetIdList.size()
106  << " lowY " << lowY_ << " high " << highY_ << " Nstring " << nStringExt_;
107 
108  for (uint32_t det : LayerDetIdList) {
109  const auto xyb = getXY_TID(det);
110  binToDet_[bin(xyb.ix, xyb.iy)] = det;
111 
112  LogTrace("TkLayerMap") << "[TkLayerMap::createTID] " << det << " " << xyb.ix << " " << xyb.iy << " " << xyb.x << " "
113  << xyb.y;
114  }
115 }
116 
117 void TkLayerMap::initMap_TEC(const std::vector<uint32_t>& TkDetIdList) {
118  //extract vector of module in the layer
119  std::vector<uint32_t> LayerDetIdList;
121  LayerDetIdList,
122  tTopo_,
123  (layer_ - TkLayerMap::TECM_W1) / 9 + 1,
124  (layer_ - TkLayerMap::TECM_W1) % 9 + 1,
125  0,
126  0);
127 
128  LogTrace("TkLayerMap") << "[TkLayerMap::createTEC] layer side " << (layer_ - TkLayerMap::TECM_W1) / 9 + 1 << " "
129  << (layer_ - TkLayerMap::TECM_W1) % 9 + 1 << " number of dets " << LayerDetIdList.size()
130  << " lowY " << lowY_ << " high " << highY_ << " Nstring " << nStringExt_;
131 
132  for (uint32_t det : LayerDetIdList) {
133  const auto xyb = getXY_TEC(det);
134  binToDet_[bin(xyb.ix, xyb.iy)] = det;
135 
136  LogTrace("TkLayerMap") << "[TkLayerMap::createTEC] " << det << " " << xyb.ix << " " << xyb.iy << " " << xyb.x << " "
137  << xyb.y;
138  }
139 }
140 
141 const int16_t TkLayerMap::layerSearch(DetId detid, const TrackerTopology* tTopo) {
142  switch (detid.subdetId()) {
143  case SiStripDetId::TIB:
144  return TkLayerMap::TIB_L1 - 1 + tTopo->tibLayer(detid);
145  case SiStripDetId::TID:
146  return TkLayerMap::TIDM_D1 - 1 + (tTopo->tidSide(detid) - 1) * 3 + tTopo->tidWheel(detid);
147  case SiStripDetId::TOB:
148  return TkLayerMap::TOB_L1 - 1 + tTopo->tobLayer(detid);
149  case SiStripDetId::TEC:
150  return TkLayerMap::TECM_W1 - 1 + (tTopo->tecSide(detid) - 1) * 9 + tTopo->tecWheel(detid);
151  default:
152  return TkLayerMap::INVALID;
153  }
154 }
155 
156 const TkLayerMap::XYbin TkLayerMap::getXY(DetId detid, int layerEnumNb) const {
157  LogTrace("TkLayerMap") << "[TkLayerMap::getXY] " << detid.rawId() << " layer " << layerEnumNb;
158 
159  if (!layerEnumNb)
160  layerEnumNb = layerSearch(detid, tTopo_);
161 
162  if (layerEnumNb != layer_)
163  throw cms::Exception("CorruptedData")
164  << "[TkLayerMap::getXY] Fill of DetId " << detid.rawId() << " layerEnumNb " << layerEnumNb
165  << " are requested to wrong TkLayerMap " << layer_ << " \nPlease check the TkDetMap code";
166 
167  if (layerEnumNb >= TkLayerMap::TIB_L1 && layerEnumNb <= TkLayerMap::TIB_L4)
168  return getXY_TIB(detid);
169  else if (layerEnumNb >= TkLayerMap::TIDM_D1 && layerEnumNb <= TkLayerMap::TIDP_D3)
170  return getXY_TID(detid);
171  else if (layerEnumNb >= TkLayerMap::TOB_L1 && layerEnumNb <= TkLayerMap::TOB_L6)
172  return getXY_TOB(detid);
173  else
174  return getXY_TEC(detid);
175 }
176 
178  XYbin xyb;
179  xyb.ix = (2 * (tTopo_->tibIsZMinusSide(detid) ? -1 * tTopo_->tibModule(detid) + 3 : tTopo_->tibModule(detid) + 2) +
180  (tTopo_->tibLayer(detid) % 2 ? (tTopo_->tibIsInternalString(detid) ? 2 : 1)
181  : (tTopo_->tibIsInternalString(detid) ? 1 : 2)));
183  : tTopo_->tibString(detid)) +
184  ((tTopo_->tibLayer(detid) < 3) && (!tTopo_->tibIsStereo(detid)) ? nStringExt_ + 2 : 0));
185 
186  xyb.x = lowX_ + xyb.ix - 0.5;
187  xyb.y = lowY_ + xyb.iy - 0.5;
188 
189  return xyb;
190 }
191 
193  XYbin xyb;
194  xyb.ix = (tTopo_->tobIsZMinusSide(detid) ? -1 * tTopo_->tobModule(detid) + 7 : tTopo_->tobModule(detid) + 6);
195  xyb.iy = (tTopo_->tobRod(detid) + (tTopo_->tobLayer(detid) < 3 && !tTopo_->tobIsStereo(detid) ? nRod_ + 2 : 0));
196 
197  xyb.x = lowX_ + xyb.ix - 0.5;
198  xyb.y = lowY_ + xyb.iy - 0.5;
199 
200  return xyb;
201 }
202 
204  XYbin xyb;
205  xyb.ix = ((tTopo_->tidIsZMinusSide(detid) ? -3 * tTopo_->tidRing(detid) + 10 : 3 * tTopo_->tidRing(detid) - 2) +
206  (tTopo_->tidIsStereo(detid) ? (tTopo_->tidIsZMinusSide(detid) ? -1 : 1) : 0));
207  xyb.iy = 2 * tTopo_->tidModule(detid) - (tTopo_->tidIsBackRing(detid) ? 0 : 1);
208 
209  xyb.x = lowX_ + xyb.ix - 0.5;
210  xyb.y = lowY_ + xyb.iy - 0.5;
211 
212  return xyb;
213 }
214 
216  XYbin xyb;
219  (tTopo_->tecIsStereo(detid) ? (tTopo_->tecIsZMinusSide(detid) ? -1 : 1) : 0));
220 
221  xyb.iy = ((tTopo_->tecPetalNumber(detid) - 1) *
226  : tTopo_->tecModule(detid) +
228 
229  xyb.x = lowX_ + xyb.ix - 0.5;
230  xyb.y = lowY_ + xyb.iy - 0.5;
231 
232  return xyb;
233 }
234 
235 // TkDetMap
236 
238  switch (in) {
239  case TkLayerMap::TIB_L1:
240  return "TIB_L1";
241  case TkLayerMap::TIB_L2:
242  return "TIB_L2";
243  case TkLayerMap::TIB_L3:
244  return "TIB_L3";
245  case TkLayerMap::TIB_L4:
246  return "TIB_L4";
247  case TkLayerMap::TIDP_D1:
248  return "TIDP_D1";
249  case TkLayerMap::TIDP_D2:
250  return "TIDP_D2";
251  case TkLayerMap::TIDP_D3:
252  return "TIDP_D3";
253  case TkLayerMap::TIDM_D1:
254  return "TIDM_D1";
255  case TkLayerMap::TIDM_D2:
256  return "TIDM_D2";
257  case TkLayerMap::TIDM_D3:
258  return "TIDM_D3";
259  case TkLayerMap::TOB_L1:
260  return "TOB_L1";
261  case TkLayerMap::TOB_L2:
262  return "TOB_L2";
263  case TkLayerMap::TOB_L3:
264  return "TOB_L3";
265  case TkLayerMap::TOB_L4:
266  return "TOB_L4";
267  case TkLayerMap::TOB_L5:
268  return "TOB_L5";
269  case TkLayerMap::TOB_L6:
270  return "TOB_L6";
271  case TkLayerMap::TECP_W1:
272  return "TECP_W1";
273  case TkLayerMap::TECP_W2:
274  return "TECP_W2";
275  case TkLayerMap::TECP_W3:
276  return "TECP_W3";
277  case TkLayerMap::TECP_W4:
278  return "TECP_W4";
279  case TkLayerMap::TECP_W5:
280  return "TECP_W5";
281  case TkLayerMap::TECP_W6:
282  return "TECP_W6";
283  case TkLayerMap::TECP_W7:
284  return "TECP_W7";
285  case TkLayerMap::TECP_W8:
286  return "TECP_W8";
287  case TkLayerMap::TECP_W9:
288  return "TECP_W9";
289  case TkLayerMap::TECM_W1:
290  return "TECM_W1";
291  case TkLayerMap::TECM_W2:
292  return "TECM_W2";
293  case TkLayerMap::TECM_W3:
294  return "TECM_W3";
295  case TkLayerMap::TECM_W4:
296  return "TECM_W4";
297  case TkLayerMap::TECM_W5:
298  return "TECM_W5";
299  case TkLayerMap::TECM_W6:
300  return "TECM_W6";
301  case TkLayerMap::TECM_W7:
302  return "TECM_W7";
303  case TkLayerMap::TECM_W8:
304  return "TECM_W8";
305  case TkLayerMap::TECM_W9:
306  return "TECM_W9";
307  }
308  return "Invalid";
309 }
310 
312  if (in == "TIB_L1")
313  return TkLayerMap::TIB_L1;
314  if (in == "TIB_L2")
315  return TkLayerMap::TIB_L2;
316  if (in == "TIB_L3")
317  return TkLayerMap::TIB_L3;
318  if (in == "TIB_L4")
319  return TkLayerMap::TIB_L4;
320  if (in == "TIDP_D1")
321  return TkLayerMap::TIDP_D1;
322  if (in == "TIDP_D2")
323  return TkLayerMap::TIDP_D2;
324  if (in == "TIDP_D3")
325  return TkLayerMap::TIDP_D3;
326  if (in == "TIDM_D1")
327  return TkLayerMap::TIDM_D1;
328  if (in == "TIDM_D2")
329  return TkLayerMap::TIDM_D2;
330  if (in == "TIDM_D3")
331  return TkLayerMap::TIDM_D3;
332  if (in == "TOB_L1")
333  return TkLayerMap::TOB_L1;
334  if (in == "TOB_L2")
335  return TkLayerMap::TOB_L2;
336  if (in == "TOB_L3")
337  return TkLayerMap::TOB_L3;
338  if (in == "TOB_L4")
339  return TkLayerMap::TOB_L4;
340  if (in == "TOB_L5")
341  return TkLayerMap::TOB_L5;
342  if (in == "TOB_L6")
343  return TkLayerMap::TOB_L6;
344  if (in == "TECP_W1")
345  return TkLayerMap::TECP_W1;
346  if (in == "TECP_W2")
347  return TkLayerMap::TECP_W2;
348  if (in == "TECP_W3")
349  return TkLayerMap::TECP_W3;
350  if (in == "TECP_W4")
351  return TkLayerMap::TECP_W4;
352  if (in == "TECP_W5")
353  return TkLayerMap::TECP_W5;
354  if (in == "TECP_W6")
355  return TkLayerMap::TECP_W6;
356  if (in == "TECP_W7")
357  return TkLayerMap::TECP_W7;
358  if (in == "TECP_W8")
359  return TkLayerMap::TECP_W8;
360  if (in == "TECP_W9")
361  return TkLayerMap::TECP_W9;
362  if (in == "TECM_W1")
363  return TkLayerMap::TECM_W1;
364  if (in == "TECM_W2")
365  return TkLayerMap::TECM_W2;
366  if (in == "TECM_W3")
367  return TkLayerMap::TECM_W3;
368  if (in == "TECM_W4")
369  return TkLayerMap::TECM_W4;
370  if (in == "TECM_W5")
371  return TkLayerMap::TECM_W5;
372  if (in == "TECM_W6")
373  return TkLayerMap::TECM_W6;
374  if (in == "TECM_W7")
375  return TkLayerMap::TECM_W7;
376  if (in == "TECM_W8")
377  return TkLayerMap::TECM_W8;
378  if (in == "TECM_W9")
379  return TkLayerMap::TECM_W9;
380  return 0;
381 }
382 
383 void TkDetMap::getSubDetLayerSide(int in, SiStripDetId::SubDetector& subDet, uint32_t& layer, uint32_t& side) {
384  switch (in) {
385  case TkLayerMap::TIB_L1:
386  subDet = SiStripDetId::TIB;
387  layer = 1;
388  break;
389  case TkLayerMap::TIB_L2:
390  subDet = SiStripDetId::TIB;
391  layer = 2;
392  break;
393  case TkLayerMap::TIB_L3:
394  subDet = SiStripDetId::TIB;
395  layer = 3;
396  break;
397  case TkLayerMap::TIB_L4:
398  subDet = SiStripDetId::TIB;
399  layer = 4;
400  break;
401  case TkLayerMap::TIDP_D1:
402  subDet = SiStripDetId::TID;
403  layer = 1;
404  side = 2;
405  break;
406  case TkLayerMap::TIDP_D2:
407  subDet = SiStripDetId::TID;
408  layer = 2;
409  side = 2;
410  break;
411  case TkLayerMap::TIDP_D3:
412  subDet = SiStripDetId::TID;
413  layer = 3;
414  side = 2;
415  break;
416  case TkLayerMap::TIDM_D1:
417  subDet = SiStripDetId::TID;
418  layer = 1;
419  side = 1;
420  break;
421  case TkLayerMap::TIDM_D2:
422  subDet = SiStripDetId::TID;
423  layer = 2;
424  side = 1;
425  break;
426  case TkLayerMap::TIDM_D3:
427  subDet = SiStripDetId::TID;
428  layer = 3;
429  side = 1;
430  break;
431  case TkLayerMap::TOB_L1:
432  subDet = SiStripDetId::TOB;
433  layer = 1;
434  break;
435  case TkLayerMap::TOB_L2:
436  subDet = SiStripDetId::TOB;
437  layer = 2;
438  break;
439  case TkLayerMap::TOB_L3:
440  subDet = SiStripDetId::TOB;
441  layer = 3;
442  break;
443  case TkLayerMap::TOB_L4:
444  subDet = SiStripDetId::TOB;
445  layer = 4;
446  break;
447  case TkLayerMap::TOB_L5:
448  subDet = SiStripDetId::TOB;
449  layer = 5;
450  break;
451  case TkLayerMap::TOB_L6:
452  subDet = SiStripDetId::TOB;
453  layer = 6;
454  break;
455  case TkLayerMap::TECP_W1:
456  subDet = SiStripDetId::TEC;
457  layer = 1;
458  side = 2;
459  break;
460  case TkLayerMap::TECP_W2:
461  subDet = SiStripDetId::TEC;
462  layer = 2;
463  side = 2;
464  break;
465  case TkLayerMap::TECP_W3:
466  subDet = SiStripDetId::TEC;
467  layer = 3;
468  side = 2;
469  break;
470  case TkLayerMap::TECP_W4:
471  subDet = SiStripDetId::TEC;
472  layer = 4;
473  side = 2;
474  break;
475  case TkLayerMap::TECP_W5:
476  subDet = SiStripDetId::TEC;
477  layer = 5;
478  side = 2;
479  break;
480  case TkLayerMap::TECP_W6:
481  subDet = SiStripDetId::TEC;
482  layer = 6;
483  side = 2;
484  break;
485  case TkLayerMap::TECP_W7:
486  subDet = SiStripDetId::TEC;
487  layer = 7;
488  side = 2;
489  break;
490  case TkLayerMap::TECP_W8:
491  subDet = SiStripDetId::TEC;
492  layer = 8;
493  side = 2;
494  break;
495  case TkLayerMap::TECP_W9:
496  subDet = SiStripDetId::TEC;
497  layer = 9;
498  side = 2;
499  break;
500  case TkLayerMap::TECM_W1:
501  subDet = SiStripDetId::TEC;
502  layer = 1;
503  side = 1;
504  break;
505  case TkLayerMap::TECM_W2:
506  subDet = SiStripDetId::TEC;
507  layer = 2;
508  side = 1;
509  break;
510  case TkLayerMap::TECM_W3:
511  subDet = SiStripDetId::TEC;
512  layer = 3;
513  side = 1;
514  break;
515  case TkLayerMap::TECM_W4:
516  subDet = SiStripDetId::TEC;
517  layer = 4;
518  side = 1;
519  break;
520  case TkLayerMap::TECM_W5:
521  subDet = SiStripDetId::TEC;
522  layer = 5;
523  side = 1;
524  break;
525  case TkLayerMap::TECM_W6:
526  subDet = SiStripDetId::TEC;
527  layer = 6;
528  side = 1;
529  break;
530  case TkLayerMap::TECM_W7:
531  subDet = SiStripDetId::TEC;
532  layer = 7;
533  side = 1;
534  break;
535  case TkLayerMap::TECM_W8:
536  subDet = SiStripDetId::TEC;
537  layer = 8;
538  side = 1;
539  break;
540  case TkLayerMap::TECM_W9:
541  subDet = SiStripDetId::TEC;
542  layer = 9;
543  side = 1;
544  break;
545  }
546 }
547 
549  DetId& cached_detid,
550  int16_t& cached_layer,
551  TkLayerMap::XYbin& cached_XYbin) const {
552  LogTrace("TkDetMap") << "[getXY] detid " << detid.rawId() << " cache " << cached_detid.rawId() << " layer "
553  << cached_layer << " XY " << cached_XYbin.ix << " " << cached_XYbin.iy << " " << cached_XYbin.x
554  << " " << cached_XYbin.y;
555  if (detid == cached_detid)
556  return cached_XYbin;
557 
558  /*FIXME*/
559  //if (layer!=INVALID)
560  findLayer(detid, cached_detid, cached_layer, cached_XYbin);
561  LogTrace("TkDetMap") << "[getXY] detid " << detid.rawId() << " cache " << cached_detid.rawId() << " layer "
562  << cached_layer << " XY " << cached_XYbin.ix << " " << cached_XYbin.iy << " " << cached_XYbin.x
563  << " " << cached_XYbin.y;
564 
565  return cached_XYbin;
566 }
567 
569  DetId& cached_detid,
570  int16_t& cached_layer,
571  TkLayerMap::XYbin& cached_XYbin) const {
572  if (detid == cached_detid)
573  return cached_layer;
574 
575  cached_detid = detid;
576 
578  if (layer == TkLayerMap::INVALID) {
579  // there is something wrong if the layer is 0, early return
580  return TkLayerMap::INVALID;
581  }
582 
583  LogTrace("TkDetMap") << "[findLayer] detid " << detid.rawId() << " layer " << layer;
584  if (layer != cached_layer) {
585  cached_layer = layer;
586  }
587  cached_XYbin = TkMap[cached_layer].getXY(detid, layer);
588  LogTrace("TkDetMap") << "[findLayer] detid " << detid.rawId() << " cached_XYbin " << cached_XYbin.ix << " "
589  << cached_XYbin.iy;
590 
591  return cached_layer;
592 }
593 
595  int layer, int& nchX, double& lowX, double& highX, int& nchY, double& lowY, double& highY) const {
596  nchX = TkMap[layer].get_nchX();
597  lowX = TkMap[layer].get_lowX();
598  highX = TkMap[layer].get_highX();
599  nchY = TkMap[layer].get_nchY();
600  lowY = TkMap[layer].get_lowY();
601  highY = TkMap[layer].get_highY();
602 }
unsigned int tecPetalNumber(const DetId &id) const
const XYbin getXY(DetId detid, int layerEnumNb=TkLayerMap::INVALID) const
Definition: TkDetMap.cc:156
unsigned int tobLayer(const DetId &id) const
void getTIBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tibDetRawIds, const TrackerTopology *trackerTopology, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t int_ext=0, uint32_t string=0)
static std::string getLayerName(int in)
Definition: TkDetMap.cc:237
static void getSubDetLayerSide(int in, SiStripDetId::SubDetector &, uint32_t &layer, uint32_t &side)
Definition: TkDetMap.cc:383
bool tobIsZMinusSide(const DetId &id) const
std::vector< uint32_t > binForRing_
Definition: TkDetMap.h:169
static constexpr auto TID
Definition: SiStripDetId.h:39
unsigned int tibModule(const DetId &id) const
unsigned int tidSide(const DetId &id) const
const TrackerTopology * tTopo_
Definition: TkDetMap.h:166
unsigned int tidWheel(const DetId &id) const
bool tibIsZMinusSide(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
bool tidIsBackRing(const DetId &id) const
void initMap_TOB(const std::vector< uint32_t > &tkDetIdList)
Definition: TkDetMap.cc:75
unsigned int tibString(const DetId &id) const
void getTIDDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tidDetRawIds, const TrackerTopology *trackerTopology, uint32_t side=0, uint32_t wheel=0, uint32_t ring=0, uint32_t ster=0)
void initMap(const std::vector< uint32_t > &tkDetIdList)
Definition: TkDetMap.cc:9
double lowY_
Definition: TkDetMap.h:165
bool tecIsZMinusSide(const DetId &id) const
static const int16_t layerSearch(DetId detid, const TrackerTopology *tTopo)
Definition: TkDetMap.cc:141
void getTECDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tecDetRawIds, const TrackerTopology *trackerTopology, uint32_t side=0, uint32_t wheel=0, uint32_t petal_bkw_frw=0, uint32_t petal=0, uint32_t ring=0, uint32_t ster=0)
void initMap_TIB(const std::vector< uint32_t > &tkDetIdList)
Definition: TkDetMap.cc:58
Log< level::Error, false > LogError
unsigned int tecRing(const DetId &id) const
ring id
uint32_t nStringExt_
Definition: TkDetMap.h:170
bool tibIsStereo(const DetId &id) const
double lowX_
Definition: TkDetMap.h:163
#define LogTrace(id)
bool tidIsZMinusSide(const DetId &id) const
std::size_t bin(std::size_t ix, std::size_t iy) const
Definition: TkDetMap.h:134
bool tobIsStereo(const DetId &id) const
std::vector< TkLayerMap > TkMap
Definition: TkDetMap.h:209
static int getLayerNum(const std::string &in)
Definition: TkDetMap.cc:311
unsigned int tidModule(const DetId &id) const
unsigned int tecModule(const DetId &id) const
const TkLayerMap::XYbin & getXY(DetId detid, DetId &cached_detid, int16_t &cached_layer, TkLayerMap::XYbin &cached_XYbin) const
Definition: TkDetMap.cc:548
int16_t findLayer(DetId detid, DetId &cached_detid, int16_t &cached_layer, TkLayerMap::XYbin &cached_XYbin) const
Definition: TkDetMap.cc:568
unsigned int tecSide(const DetId &id) const
std::vector< uint32_t > modulesInRingBack_
Definition: TkDetMap.h:169
uint32_t nRod_
Definition: TkDetMap.h:170
double highY_
Definition: TkDetMap.h:165
void initMap_TID(const std::vector< uint32_t > &tkDetIdList)
Definition: TkDetMap.cc:93
std::vector< uint32_t > singleExtStr_
Definition: TkDetMap.h:168
static constexpr auto TOB
Definition: SiStripDetId.h:40
bool tecIsBackPetal(const DetId &id) const
XYbin getXY_TEC(DetId detid) const
Definition: TkDetMap.cc:215
std::vector< DetId > binToDet_
Definition: TkDetMap.h:172
Definition: DetId.h:17
int layer_
Definition: TkDetMap.h:161
XYbin getXY_TOB(DetId detid) const
Definition: TkDetMap.cc:192
void getComponents(int layer, int &nchX, double &lowX, double &highX, int &nchY, double &lowY, double &highY) const
Definition: TkDetMap.cc:594
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
bool tecIsStereo(const DetId &id) const
bool tibIsInternalString(const DetId &id) const
unsigned int tobRod(const DetId &id) const
static constexpr auto TIB
Definition: SiStripDetId.h:38
bool tidIsStereo(const DetId &id) const
XYbin getXY_TIB(DetId detid) const
Definition: TkDetMap.cc:177
std::vector< uint32_t > modulesInRingFront_
Definition: TkDetMap.h:169
unsigned int tidRing(const DetId &id) const
const TrackerTopology * tTopo_
Definition: TkDetMap.h:210
unsigned int tibLayer(const DetId &id) const
unsigned int tobModule(const DetId &id) const
void getTOBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tobDetRawIds, const TrackerTopology *trackerTopology, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t rod=0)
XYbin getXY_TID(DetId detid) const
Definition: TkDetMap.cc:203
static constexpr auto TEC
Definition: SiStripDetId.h:41
void initMap_TEC(const std::vector< uint32_t > &tkDetIdList)
Definition: TkDetMap.cc:117