CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackerTopology.h
Go to the documentation of this file.
1 #ifndef TRACKERTOPOLOGY_H
2 #define TRACKERTOPOLOGY_H
3 
8 
9 #include <vector>
10 #include <string>
11 
12 //knower of all things tracker geometry
13 //flexible replacement for PXBDetId and friends
14 //to implement
15 // endcap pixel
16 
17 
19 
20  public:
21 
23  unsigned int layerStartBit_;
24  unsigned int ladderStartBit_;
25  unsigned int moduleStartBit_;
26  unsigned int layerMask_;
27  unsigned int ladderMask_;
28  unsigned int moduleMask_;
29  };
30 
32  unsigned int sideStartBit_;
33  unsigned int diskStartBit_;
34  unsigned int bladeStartBit_;
35  unsigned int panelStartBit_;
36  unsigned int moduleStartBit_;
37  unsigned int sideMask_;
38  unsigned int diskMask_;
39  unsigned int bladeMask_;
40  unsigned int panelMask_;
41  unsigned int moduleMask_;
42  };
43 
44  struct TECValues {
45  unsigned int sideStartBit_;
46  unsigned int wheelStartBit_;
47  unsigned int petal_fw_bwStartBit_;
48  unsigned int petalStartBit_;
49  unsigned int ringStartBit_;
50  unsigned int moduleStartBit_;
51  unsigned int sterStartBit_;
52  unsigned int sideMask_;
53  unsigned int wheelMask_;
54  unsigned int petal_fw_bwMask_;
55  unsigned int petalMask_;
56  unsigned int ringMask_;
57  unsigned int moduleMask_;
58  unsigned int sterMask_;
59  };
60 
61  struct TIBValues {
62  unsigned int layerStartBit_;
63  unsigned int str_fw_bwStartBit_;
64  unsigned int str_int_extStartBit_;
65  unsigned int strStartBit_;
66  unsigned int moduleStartBit_;
67  unsigned int sterStartBit_;
68 
69  unsigned int layerMask_;
70  unsigned int str_fw_bwMask_;
71  unsigned int str_int_extMask_;
72  unsigned int strMask_;
73  unsigned int moduleMask_;
74  unsigned int sterMask_;
75  };
76 
77  struct TIDValues {
78  unsigned int sideStartBit_;
79  unsigned int wheelStartBit_;
80  unsigned int ringStartBit_;
81  unsigned int module_fw_bwStartBit_;
82  unsigned int moduleStartBit_;
83  unsigned int sterStartBit_;
84  unsigned int sideMask_;
85  unsigned int wheelMask_;
86  unsigned int ringMask_;
87  unsigned int module_fw_bwMask_;
88  unsigned int moduleMask_;
89  unsigned int sterMask_;
90  };
91 
92  struct TOBValues {
93  unsigned int layerStartBit_;
94  unsigned int rod_fw_bwStartBit_;
95  unsigned int rodStartBit_;
96  unsigned int moduleStartBit_;
97  unsigned int sterStartBit_;
98  unsigned int layerMask_;
99  unsigned int rod_fw_bwMask_;
100  unsigned int rodMask_;
101  unsigned int moduleMask_;
102  unsigned int sterMask_;
103  };
104 
106  public:
107  explicit SameLayerComparator(const TrackerTopology *topo): topo_(topo) {}
108 
109  bool operator()(DetId i1, DetId i2) const {
110  if(i1.det() == i2.det() &&
111  i1.subdetId() == i2.subdetId() &&
112  topo_->side(i1) == topo_->side(i2) &&
113  topo_->layer(i1) == topo_->layer(i2)) {
114  return false;
115  }
116  return i1 < i2;
117  }
118 
119  bool operator()(uint32_t i1, uint32_t i2) const {
120  return operator()(DetId(i1), DetId(i2));
121  }
122  private:
124  };
125 
126 
127  TrackerTopology( const PixelBarrelValues& pxb, const PixelEndcapValues& pxf,
128  const TECValues& tecv, const TIBValues& tibv,
129  const TIDValues& tidv, const TOBValues& tobv);
130 
131  unsigned int side(const DetId &id) const;
132  unsigned int layer(const DetId &id) const;
133  unsigned int module(const DetId &id) const;
134 
135  // layer numbers
136  unsigned int pxbLayer(const DetId &id) const {
137  return int((id.rawId()>>pbVals_.layerStartBit_) & pbVals_.layerMask_);
138  }
139  unsigned int tobLayer(const DetId &id) const {
140  return int((id.rawId()>>tobVals_.layerStartBit_) & tobVals_.layerMask_);
141  }
142  unsigned int tibLayer(const DetId &id) const {
143  return int((id.rawId()>>tibVals_.layerStartBit_) & tibVals_.layerMask_);
144  }
145 
146 
147  //ladder
148  unsigned int pxbLadder(const DetId &id) const {
149  return ((id.rawId()>>pbVals_.ladderStartBit_) & pbVals_.ladderMask_) ;
150  }
151 
152  //module
153  unsigned int pxbModule(const DetId &id) const {
154  return ((id.rawId()>>pbVals_.moduleStartBit_)& pbVals_.moduleMask_);
155  }
156  unsigned int pxfModule(const DetId &id) const {
157  return int((id.rawId()>>pfVals_.moduleStartBit_) & pfVals_.moduleMask_);
158  }
159  unsigned int tobModule(const DetId &id) const {
160  return ((id.rawId()>>tobVals_.moduleStartBit_)& tobVals_.moduleMask_);
161  }
162  unsigned int tecModule(const DetId &id) const {
163  return ((id.rawId()>>tecVals_.moduleStartBit_) & tecVals_.moduleMask_);
164  }
165  unsigned int tibModule(const DetId &id) const {
166  return ((id.rawId()>>tibVals_.moduleStartBit_)& tibVals_.moduleMask_);
167  }
168  unsigned int tidModule(const DetId &id) const {
169  return ((id.rawId()>>tidVals_.moduleStartBit_)& tidVals_.moduleMask_);
170  }
171 
172 
173  //side
174  unsigned int tobSide(const DetId &id) const {
175  return ((id.rawId()>>tobVals_.rod_fw_bwStartBit_) & tobVals_.rod_fw_bwMask_);
176  }
177 
178  unsigned int tecSide(const DetId &id) const {
179  return ((id.rawId()>>tecVals_.sideStartBit_)&tecVals_.sideMask_);
180  }
181 
182  unsigned int tibSide(const DetId &id) const {
183  return ((id.rawId()>>tibVals_.str_fw_bwStartBit_) & tibVals_.str_fw_bwMask_);
184  }
185 
186  unsigned int tidSide(const DetId &id) const {
187  return ((id.rawId()>>tidVals_.sideStartBit_)&tidVals_.sideMask_);
188  }
189 
190  unsigned int pxfSide(const DetId &id) const {
191  return ((id.rawId()>>pfVals_.sideStartBit_)&pfVals_.sideMask_);
192  }
193 
194  //rod
195  unsigned int tobRod(const DetId &id) const {
196  return ((id.rawId()>>tobVals_.rodStartBit_) & tobVals_.rodMask_);
197  }
198 
199  //wheel
200  unsigned int tecWheel(const DetId &id) const {
201  return ((id.rawId()>>tecVals_.wheelStartBit_) & tecVals_.wheelMask_) ;
202  }
203  unsigned int tidWheel(const DetId &id) const {
204  return ((id.rawId()>>tidVals_.wheelStartBit_) & tidVals_.wheelMask_) ;
205  }
206 
207  //order
208  unsigned int tecOrder(const DetId &id) const {
209  return ((id.rawId()>>tecVals_.petal_fw_bwStartBit_) & tecVals_.petal_fw_bwMask_);
210  }
211  unsigned int tibOrder(const DetId &id) const {
212  return ((id.rawId()>>tibVals_.str_int_extStartBit_) & tibVals_.str_int_extMask_);
213  }
214  unsigned int tidOrder(const DetId &id) const {
215  return ((id.rawId()>>tidVals_.module_fw_bwStartBit_) & tidVals_.module_fw_bwMask_);
216  }
217 
218 
220  unsigned int tecRing(const DetId &id) const {
221  return ((id.rawId()>>tecVals_.ringStartBit_) & tecVals_.ringMask_) ;
222  }
223  unsigned int tidRing(const DetId &id) const {
224  return ((id.rawId()>>tidVals_.ringStartBit_) & tidVals_.ringMask_) ;
225  }
226 
227 
228  //petal
229  unsigned int tecPetalNumber(const DetId &id) const
230  { return ((id.rawId()>>tecVals_.petalStartBit_) & tecVals_.petalMask_);}
231 
232 
233 
234 
235  //misc tob
236  std::vector<unsigned int> tobRodInfo(const DetId &id) const {
237  std::vector<unsigned int> num;
238  num.push_back( tobSide(id) );
239  num.push_back( tobRod(id) );
240  return num ;
241  }
242 
243  bool tobIsDoubleSide(const DetId &id) const { return SiStripDetId(id).glued()==0 && (tobLayer(id)==1 || tobLayer(id)==2);}
244  bool tecIsDoubleSide(const DetId &id) const { return SiStripDetId(id).glued()==0 && (tecRing(id)==1 || tecRing(id)==2 || tecRing(id)==5);}
245  bool tibIsDoubleSide(const DetId &id) const { return SiStripDetId(id).glued()==0 && (tibLayer(id)==1 || tibLayer(id)==2);}
246  bool tidIsDoubleSide(const DetId &id) const { return SiStripDetId(id).glued()==0 && (tidRing(id)==1 || tidRing(id)==2);}
247 
248  bool tobIsZPlusSide(const DetId &id) const {return !tobIsZMinusSide(id);}
249  bool tobIsZMinusSide(const DetId &id) const { return tobSide(id)==1;}
250 
251  bool tibIsZPlusSide(const DetId &id) const {return !tibIsZMinusSide(id);}
252  bool tibIsZMinusSide(const DetId &id) const { return tibSide(id)==1;}
253 
254  bool tidIsZPlusSide(const DetId &id) const {return !tidIsZMinusSide(id);}
255  bool tidIsZMinusSide(const DetId &id) const { return tidSide(id)==1;}
256 
257  bool tecIsZPlusSide(const DetId &id) const {return !tecIsZMinusSide(id);}
258  bool tecIsZMinusSide(const DetId &id) const { return tecSide(id)==1;}
259 
260  //these are from the old TOB/TEC/TID/TIB DetId
261  bool tobIsStereo(const DetId &id) const {return tobStereo(id)!=0 && !tobIsDoubleSide(id);}
262  bool tecIsStereo(const DetId &id) const {return tecStereo(id)!=0 && !tecIsDoubleSide(id);}
263  bool tibIsStereo(const DetId &id) const {return tibStereo(id)!=0 && !tibIsDoubleSide(id);}
264  bool tidIsStereo(const DetId &id) const {return tidStereo(id)!=0 && !tidIsDoubleSide(id);}
265 
266  //these are clones of the old SiStripDetId
267  uint32_t tobStereo(const DetId &id) const {
268  if ( ((id.rawId() >>tobVals_.sterStartBit_ ) & tobVals_.sterMask_ ) == 1 ) {
269  return ( (id.rawId()>>tobVals_.sterStartBit_) & tobVals_.sterMask_ );
270  } else { return 0; }
271  }
272 
273  uint32_t tibStereo(const DetId &id) const {
274  if ( ((id.rawId() >>tibVals_.sterStartBit_ ) & tibVals_.sterMask_ ) == 1 ) {
275  return ( (id.rawId()>>tibVals_.sterStartBit_) & tibVals_.sterMask_ );
276  } else { return 0; }
277  }
278 
279  uint32_t tidStereo(const DetId &id) const {
280  if ( ((id.rawId() >>tidVals_.sterStartBit_ ) & tidVals_.sterMask_ ) == 1 ) {
281  return ( (id.rawId()>>tidVals_.sterStartBit_) & tidVals_.sterMask_ );
282  } else { return 0; }
283  }
284 
285  uint32_t tecStereo(const DetId &id) const {
286  if ( ((id.rawId() >>tecVals_.sterStartBit_ ) & tecVals_.sterMask_ ) == 1 ) {
287  return ( (id.rawId()>>tecVals_.sterStartBit_) & tecVals_.sterMask_ );
288  } else { return 0; }
289  }
290 
291  uint32_t tibGlued(const DetId &id) const {
292  if ( ((id.rawId()>>tibVals_.sterStartBit_) & tibVals_.sterMask_ ) == 1 ) {
293  return ( id.rawId() - 1 );
294  } else if ( ((id.rawId()>>tibVals_.sterStartBit_) & tibVals_.sterMask_ ) == 2 ) {
295  return ( id.rawId() - 2 );
296  } else { return 0; }
297  }
298 
299  uint32_t tecGlued(const DetId &id) const {
300  if ( ((id.rawId()>>tecVals_.sterStartBit_) & tecVals_.sterMask_ ) == 1 ) {
301  return ( id.rawId() - 1 );
302  } else if ( ((id.rawId()>>tecVals_.sterStartBit_) & tecVals_.sterMask_ ) == 2 ) {
303  return ( id.rawId() - 2 );
304  } else { return 0; }
305  }
306 
307  uint32_t tobGlued(const DetId &id) const {
308  if ( ((id.rawId()>>tobVals_.sterStartBit_) & tobVals_.sterMask_ ) == 1 ) {
309  return ( id.rawId() - 1 );
310  } else if ( ((id.rawId()>>tobVals_.sterStartBit_) & tobVals_.sterMask_ ) == 2 ) {
311  return ( id.rawId() - 2 );
312  } else { return 0; }
313  }
314 
315  uint32_t tidGlued(const DetId &id) const {
316  if ( ((id.rawId()>>tidVals_.sterStartBit_) & tidVals_.sterMask_ ) == 1 ) {
317  return ( id.rawId() - 1 );
318  } else if ( ((id.rawId()>>tidVals_.sterStartBit_) & tidVals_.sterMask_ ) == 2 ) {
319  return ( id.rawId() - 2 );
320  } else { return 0; }
321  }
322 
323  bool tobIsRPhi(const DetId &id) const { return SiStripDetId(id).stereo()==0 && !tobIsDoubleSide(id);}
324  bool tecIsRPhi(const DetId &id) const { return SiStripDetId(id).stereo()==0 && !tecIsDoubleSide(id);}
325  bool tibIsRPhi(const DetId &id) const { return SiStripDetId(id).stereo()==0 && !tibIsDoubleSide(id);}
326  bool tidIsRPhi(const DetId &id) const { return SiStripDetId(id).stereo()==0 && !tidIsDoubleSide(id);}
327 
328 
329  //misc tec
330  std::vector<unsigned int> tecPetalInfo(const DetId &id) const {
331  std::vector<unsigned int> num;
332  num.push_back(tecOrder(id));
333  num.push_back(tecPetalNumber(id));
334  return num ;
335  }
336 
337  bool tecIsBackPetal(const DetId &id) const {
338  return (tecOrder(id)==1);
339  }
340 
341  bool tecIsFrontPetal(const DetId &id) const {return !tecIsBackPetal(id);}
342 
343  //misc tib
344  unsigned int tibString(const DetId &id) const {
345  return (id.rawId()>>tibVals_.strStartBit_)&tibVals_.strMask_;
346  }
347 
348  std::vector<unsigned int> tibStringInfo(const DetId &id) const
349  { std::vector<unsigned int> num;
350  num.push_back( tibSide(id) );
351  num.push_back( tibOrder(id) );
352  num.push_back(tibString(id));
353  return num ;
354  }
355 
356  bool tibIsInternalString(const DetId &id) const {
357  return (tibOrder(id)==1);
358  }
359 
360  bool tibIsExternalString(const DetId &id) const {
361  return !tibIsInternalString(id);
362  }
363 
364  //misc tid
365  std::vector<unsigned int> tidModuleInfo(const DetId &id) const {
366  std::vector<unsigned int> num;
367  num.push_back( tidOrder(id) );
368  num.push_back( tidModule(id) );
369  return num ;
370  }
371 
372  bool tidIsBackRing(const DetId &id) const {
373  return (tidOrder(id)==1);
374  }
375 
376  bool tidIsFrontRing(const DetId &id) const {return !tidIsBackRing(id);}
377 
378 
379  //misc pf
380  unsigned int pxfDisk(const DetId &id) const {
381  return int((id.rawId()>>pfVals_.diskStartBit_) & pfVals_.diskMask_);
382  }
383  unsigned int pxfBlade(const DetId &id) const {
384  return int((id.rawId()>>pfVals_.bladeStartBit_) & pfVals_.bladeMask_);
385  }
386  unsigned int pxfPanel(const DetId &id) const {
387  return int((id.rawId()>>pfVals_.panelStartBit_) & pfVals_.panelMask_);
388  }
389 
390  //old constructors, now return DetId
391  DetId pxbDetId(uint32_t layer,
392  uint32_t ladder,
393  uint32_t module) const {
394  //uply
396  uint32_t rawid=id.rawId();
397  rawid |= (layer& pbVals_.layerMask_) << pbVals_.layerStartBit_ |
400  return DetId(rawid);
401  }
402 
403  DetId pxfDetId(uint32_t side,
404  uint32_t disk,
405  uint32_t blade,
406  uint32_t panel,
407  uint32_t module) const {
409  uint32_t rawid=id.rawId();
410  rawid |= (side& pfVals_.sideMask_) << pfVals_.sideStartBit_ |
415  return DetId(rawid);
416  }
417 
418  DetId tecDetId(uint32_t side, uint32_t wheel,
419  uint32_t petal_fw_bw, uint32_t petal,
420  uint32_t ring, uint32_t module, uint32_t ster) const {
421 
423  uint32_t rawid=id.rawId();
424 
425  rawid |= (side& tecVals_.sideMask_) << tecVals_.sideStartBit_ |
432  return DetId(rawid);
433  }
434 
435  DetId tibDetId(uint32_t layer,
436  uint32_t str_fw_bw,
437  uint32_t str_int_ext,
438  uint32_t str,
439  uint32_t module,
440  uint32_t ster) const {
442  uint32_t rawid=id.rawId();
443  rawid |= (layer& tibVals_.layerMask_) << tibVals_.layerStartBit_ |
449  return DetId(rawid);
450  }
451 
452  DetId tidDetId(uint32_t side,
453  uint32_t wheel,
454  uint32_t ring,
455  uint32_t module_fw_bw,
456  uint32_t module,
457  uint32_t ster) const {
459  uint32_t rawid=id.rawId();
460  rawid |= (side& tidVals_.sideMask_) << tidVals_.sideStartBit_ |
466  return DetId(rawid);
467  }
468 
469  DetId tobDetId(uint32_t layer,
470  uint32_t rod_fw_bw,
471  uint32_t rod,
472  uint32_t module,
473  uint32_t ster) const {
475  uint32_t rawid=id.rawId();
476  rawid |= (layer& tobVals_.layerMask_) << tobVals_.layerStartBit_ |
481  return DetId(rawid);
482  }
483 
484  std::pair<DetId, SameLayerComparator> pxbDetIdLayerComparator(uint32_t layer) const {
485  return std::make_pair(pxbDetId(layer, 1,1), SameLayerComparator(this));
486  }
487 
488  std::pair<DetId, SameLayerComparator> pxfDetIdDiskComparator(uint32_t side, uint32_t disk) const {
489  return std::make_pair(pxfDetId(side, disk, 1,1,1), SameLayerComparator(this));
490  }
491 
492  std::pair<DetId, SameLayerComparator> tecDetIdWheelComparator(uint32_t side, uint32_t wheel) const {
493  return std::make_pair(tecDetId(side, wheel, 1,1,1,1,1), SameLayerComparator(this));
494  }
495 
496  std::pair<DetId, SameLayerComparator> tibDetIdLayerComparator(uint32_t layer) const {
497  return std::make_pair(tibDetId(layer, 1,1,1,1,1), SameLayerComparator(this));
498  }
499 
500  std::pair<DetId, SameLayerComparator> tidDetIdWheelComparator(uint32_t side, uint32_t wheel) const {
501  return std::make_pair(tidDetId(side, wheel, 1,1,1,1), SameLayerComparator(this));
502  }
503 
504  std::pair<DetId, SameLayerComparator> tobDetIdLayerComparator(uint32_t layer) const {
505  return std::make_pair(tobDetId(layer, 1,1,1,1), SameLayerComparator(this));
506  }
507 
508  std::string print(DetId detid) const;
509 
511 
512  private:
513 
516 
521 
522 };
523 
524 #endif
525 
bool tecIsDoubleSide(const DetId &id) const
bool tobIsDoubleSide(const DetId &id) const
uint32_t tobGlued(const DetId &id) const
bool tibIsDoubleSide(const DetId &id) const
unsigned int tibLayer(const DetId &id) const
unsigned int tibString(const DetId &id) const
unsigned int tidRing(const DetId &id) const
std::pair< DetId, SameLayerComparator > pxfDetIdDiskComparator(uint32_t side, uint32_t disk) const
uint32_t stereo() const
Definition: SiStripDetId.h:162
bool tobIsStereo(const DetId &id) const
std::vector< unsigned int > tidModuleInfo(const DetId &id) const
unsigned int pxfDisk(const DetId &id) const
unsigned int tecRing(const DetId &id) const
ring id
uint32_t tobStereo(const DetId &id) const
unsigned int pxbLadder(const DetId &id) const
unsigned int side(const DetId &id) const
uint32_t tecGlued(const DetId &id) const
bool tidIsFrontRing(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
unsigned int pxbModule(const DetId &id) const
SiStripDetId::ModuleGeometry moduleGeometry(const DetId &id) const
bool operator()(DetId i1, DetId i2) const
std::vector< unsigned int > tibStringInfo(const DetId &id) const
bool tobIsRPhi(const DetId &id) const
std::string print(DetId detid) const
DetId pxfDetId(uint32_t side, uint32_t disk, uint32_t blade, uint32_t panel, uint32_t module) const
std::pair< DetId, SameLayerComparator > tidDetIdWheelComparator(uint32_t side, uint32_t wheel) const
bool tecIsZMinusSide(const DetId &id) const
PixelEndcapValues pfVals_
bool tidIsStereo(const DetId &id) const
bool tidIsZMinusSide(const DetId &id) const
bool tibIsZPlusSide(const DetId &id) const
unsigned int module(const DetId &id) const
bool tecIsStereo(const DetId &id) const
unsigned int tibSide(const DetId &id) const
bool tibIsExternalString(const DetId &id) const
std::vector< unsigned int > tecPetalInfo(const DetId &id) const
bool tibIsRPhi(const DetId &id) const
std::pair< DetId, SameLayerComparator > tobDetIdLayerComparator(uint32_t layer) const
unsigned int tidSide(const DetId &id) const
PixelBarrelValues pbVals_
uint32_t tidStereo(const DetId &id) const
bool tibIsZMinusSide(const DetId &id) const
std::vector< unsigned int > tobRodInfo(const DetId &id) const
unsigned int tidModule(const DetId &id) const
bool tidIsBackRing(const DetId &id) const
std::pair< DetId, SameLayerComparator > tibDetIdLayerComparator(uint32_t layer) const
bool tobIsZPlusSide(const DetId &id) const
DetId tobDetId(uint32_t layer, uint32_t rod_fw_bw, uint32_t rod, uint32_t module, uint32_t ster) const
unsigned int tobSide(const DetId &id) const
DetId tidDetId(uint32_t side, uint32_t wheel, uint32_t ring, uint32_t module_fw_bw, uint32_t module, uint32_t ster) const
SameLayerComparator(const TrackerTopology *topo)
bool tobIsZMinusSide(const DetId &id) const
bool operator()(uint32_t i1, uint32_t i2) const
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
std::pair< DetId, SameLayerComparator > tecDetIdWheelComparator(uint32_t side, uint32_t wheel) const
bool tecIsRPhi(const DetId &id) const
unsigned int tibModule(const DetId &id) const
unsigned int pxfModule(const DetId &id) const
unsigned int pxbLayer(const DetId &id) const
unsigned int tecModule(const DetId &id) const
bool tecIsFrontPetal(const DetId &id) const
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
bool tecIsBackPetal(const DetId &id) const
Definition: DetId.h:18
uint32_t glued() const
Definition: SiStripDetId.h:154
bool tidIsRPhi(const DetId &id) const
uint32_t tibGlued(const DetId &id) const
bool tidIsZPlusSide(const DetId &id) const
unsigned int module_fw_bwStartBit_
DetId tibDetId(uint32_t layer, uint32_t str_fw_bw, uint32_t str_int_ext, uint32_t str, uint32_t module, uint32_t ster) const
bool tibIsStereo(const DetId &id) const
bool tidIsDoubleSide(const DetId &id) const
unsigned int tecOrder(const DetId &id) const
unsigned int tobModule(const DetId &id) const
unsigned int layer(const DetId &id) const
bool tecIsZPlusSide(const DetId &id) const
unsigned int tidOrder(const DetId &id) const
uint32_t tecStereo(const DetId &id) const
unsigned int pxfSide(const DetId &id) const
unsigned int tecPetalNumber(const DetId &id) const
DetId pxbDetId(uint32_t layer, uint32_t ladder, uint32_t module) const
unsigned int tobRod(const DetId &id) const
uint32_t tibStereo(const DetId &id) const
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
bool tibIsInternalString(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
std::pair< DetId, SameLayerComparator > pxbDetIdLayerComparator(uint32_t layer) const
DetId tecDetId(uint32_t side, uint32_t wheel, uint32_t petal_fw_bw, uint32_t petal, uint32_t ring, uint32_t module, uint32_t ster) const
Definition: vlib.h:208
TrackerTopology(const PixelBarrelValues &pxb, const PixelEndcapValues &pxf, const TECValues &tecv, const TIBValues &tibv, const TIDValues &tidv, const TOBValues &tobv)
unsigned int pxfPanel(const DetId &id) const
unsigned int pxfBlade(const DetId &id) const
unsigned int tobLayer(const DetId &id) const
unsigned int tecSide(const DetId &id) const
unsigned int tibOrder(const DetId &id) const
uint32_t tidGlued(const DetId &id) const