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