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 
136  // layer numbers
137  unsigned int pxbLayer(const DetId &id) const {
138  return int((id.rawId()>>pbVals_.layerStartBit_) & pbVals_.layerMask_);
139  }
140  unsigned int tobLayer(const DetId &id) const {
141  return int((id.rawId()>>tobVals_.layerStartBit_) & tobVals_.layerMask_);
142  }
143  unsigned int tibLayer(const DetId &id) const {
144  return int((id.rawId()>>tibVals_.layerStartBit_) & tibVals_.layerMask_);
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  //side
173  unsigned int tobSide(const DetId &id) const {
174  return ((id.rawId()>>tobVals_.rod_fw_bwStartBit_) & tobVals_.rod_fw_bwMask_);
175  }
176 
177  unsigned int tecSide(const DetId &id) const {
178  return ((id.rawId()>>tecVals_.sideStartBit_)&tecVals_.sideMask_);
179  }
180 
181  unsigned int tibSide(const DetId &id) const {
182  return ((id.rawId()>>tibVals_.str_fw_bwStartBit_) & tibVals_.str_fw_bwMask_);
183  }
184 
185  unsigned int tidSide(const DetId &id) const {
186  return ((id.rawId()>>tidVals_.sideStartBit_)&tidVals_.sideMask_);
187  }
188 
189  unsigned int pxfSide(const DetId &id) const {
190  return ((id.rawId()>>pfVals_.sideStartBit_)&pfVals_.sideMask_);
191  }
192 
193  //rod
194  unsigned int tobRod(const DetId &id) const {
195  return ((id.rawId()>>tobVals_.rodStartBit_) & tobVals_.rodMask_);
196  }
197 
198  //wheel
199  unsigned int tecWheel(const DetId &id) const {
200  return ((id.rawId()>>tecVals_.wheelStartBit_) & tecVals_.wheelMask_) ;
201  }
202  unsigned int tidWheel(const DetId &id) const {
203  return ((id.rawId()>>tidVals_.wheelStartBit_) & tidVals_.wheelMask_) ;
204  }
205 
206  //order
207  unsigned int tecOrder(const DetId &id) const {
208  return ((id.rawId()>>tecVals_.petal_fw_bwStartBit_) & tecVals_.petal_fw_bwMask_);
209  }
210  unsigned int tibOrder(const DetId &id) const {
211  return ((id.rawId()>>tibVals_.str_int_extStartBit_) & tibVals_.str_int_extMask_);
212  }
213  unsigned int tidOrder(const DetId &id) const {
214  return ((id.rawId()>>tidVals_.module_fw_bwStartBit_) & tidVals_.module_fw_bwMask_);
215  }
216 
217 
219  unsigned int tecRing(const DetId &id) const {
220  return ((id.rawId()>>tecVals_.ringStartBit_) & tecVals_.ringMask_) ;
221  }
222  unsigned int tidRing(const DetId &id) const {
223  return ((id.rawId()>>tidVals_.ringStartBit_) & tidVals_.ringMask_) ;
224  }
225 
226 
227  //petal
228  unsigned int tecPetalNumber(const DetId &id) const
229  { return ((id.rawId()>>tecVals_.petalStartBit_) & tecVals_.petalMask_);}
230 
231 
232 
233 
234  //misc tob
235  std::vector<unsigned int> tobRodInfo(const DetId &id) const {
236  std::vector<unsigned int> num;
237  num.push_back( tobSide(id) );
238  num.push_back( tobRod(id) );
239  return num ;
240  }
241 
242  //generic function to return DetIds and boolean factors
243  uint32_t glued(const DetId &id) const ;
244  uint32_t stack(const DetId &id) const ;
245  uint32_t lower(const DetId &id) const ;
246  uint32_t upper(const DetId &id) const ;
247 
248  bool isStereo(const DetId &id) const;
249  bool isRPhi(const DetId &id) const;
250  bool isLower(const DetId &id) const;
251  bool isUpper(const DetId &id) const;
252 
253  //specific function to return boolean factors
254  bool tobIsDoubleSide(const DetId &id) const { return tobGlued(id)==0 && (tobLayer(id)==1 || tobLayer(id)==2);}
255  bool tecIsDoubleSide(const DetId &id) const { return tecGlued(id)==0 && (tecRing(id)==1 || tecRing(id)==2 || tecRing(id)==5);}
256  bool tibIsDoubleSide(const DetId &id) const { return tibGlued(id)==0 && (tibLayer(id)==1 || tibLayer(id)==2);}
257  bool tidIsDoubleSide(const DetId &id) const { return tidGlued(id)==0 && (tidRing(id)==1 || tidRing(id)==2);}
258 
259  bool tobIsZPlusSide(const DetId &id) const {return !tobIsZMinusSide(id);}
260  bool tobIsZMinusSide(const DetId &id) const { return tobSide(id)==1;}
261 
262  bool tibIsZPlusSide(const DetId &id) const {return !tibIsZMinusSide(id);}
263  bool tibIsZMinusSide(const DetId &id) const { return tibSide(id)==1;}
264 
265  bool tidIsZPlusSide(const DetId &id) const {return !tidIsZMinusSide(id);}
266  bool tidIsZMinusSide(const DetId &id) const { return tidSide(id)==1;}
267 
268  bool tecIsZPlusSide(const DetId &id) const {return !tecIsZMinusSide(id);}
269  bool tecIsZMinusSide(const DetId &id) const { return tecSide(id)==1;}
270 
271  bool tobIsStereo(const DetId &id) const {return tobStereo(id)!=0 && !tobIsDoubleSide(id);}
272  bool tecIsStereo(const DetId &id) const {return tecStereo(id)!=0 && !tecIsDoubleSide(id);}
273  bool tibIsStereo(const DetId &id) const {return tibStereo(id)!=0 && !tibIsDoubleSide(id);}
274  bool tidIsStereo(const DetId &id) const {return tidStereo(id)!=0 && !tidIsDoubleSide(id);}
275 
276  bool tobIsRPhi(const DetId &id) const { return tobRPhi(id)!=0 && !tobIsDoubleSide(id);}
277  bool tecIsRPhi(const DetId &id) const { return tecRPhi(id)!=0 && !tecIsDoubleSide(id);}
278  bool tibIsRPhi(const DetId &id) const { return tibRPhi(id)!=0 && !tibIsDoubleSide(id);}
279  bool tidIsRPhi(const DetId &id) const { return tidRPhi(id)!=0 && !tidIsDoubleSide(id);}
280 
281  //phase0 stereo
282  uint32_t tobStereo(const DetId &id) const {
283  return ( ((id.rawId() >>tobVals_.sterStartBit_ ) & tobVals_.sterMask_ ) == 1 ) ? 1 : 0;
284  }
285 
286  uint32_t tibStereo(const DetId &id) const {
287  return ( ((id.rawId() >>tibVals_.sterStartBit_ ) & tibVals_.sterMask_ ) == 1 ) ? 1 : 0;
288  }
289 
290  uint32_t tidStereo(const DetId &id) const {
291  return ( ((id.rawId() >>tidVals_.sterStartBit_ ) & tidVals_.sterMask_ ) == 1 ) ? 1 : 0;
292  }
293 
294  uint32_t tecStereo(const DetId &id) const {
295  return ( ((id.rawId() >>tecVals_.sterStartBit_ ) & tecVals_.sterMask_ ) == 1 ) ? 1 : 0;
296  }
297 
298  //phase0 stereo == phase2 lower
299  uint32_t tibLower(const DetId &id) const { return tibStereo(id); }
300  uint32_t tidLower(const DetId &id) const { return tidStereo(id); }
301  uint32_t tobLower(const DetId &id) const { return tobStereo(id); }
302  uint32_t tecLower(const DetId &id) const { return tecStereo(id); }
303 
304  //phase0 rphi
305  uint32_t tobRPhi(const DetId &id) const {
306  if ( ((id.rawId() >>tobVals_.sterStartBit_ ) & tobVals_.sterMask_ ) == 2 ) {
307  return ( (id.rawId()>>tobVals_.sterStartBit_) & tobVals_.sterMask_ );
308  } else { return 0; }
309  }
310 
311  uint32_t tibRPhi(const DetId &id) const {
312  if ( ((id.rawId() >>tibVals_.sterStartBit_ ) & tibVals_.sterMask_ ) == 2 ) {
313  return ( (id.rawId()>>tibVals_.sterStartBit_) & tibVals_.sterMask_ );
314  } else { return 0; }
315  }
316 
317  uint32_t tidRPhi(const DetId &id) const {
318  if ( ((id.rawId() >>tidVals_.sterStartBit_ ) & tidVals_.sterMask_ ) == 2 ) {
319  return ( (id.rawId()>>tidVals_.sterStartBit_) & tidVals_.sterMask_ );
320  } else { return 0; }
321  }
322 
323  uint32_t tecRPhi(const DetId &id) const {
324  if ( ((id.rawId() >>tecVals_.sterStartBit_ ) & tecVals_.sterMask_ ) == 2 ) {
325  return ( (id.rawId()>>tecVals_.sterStartBit_) & tecVals_.sterMask_ );
326  } else { return 0; }
327  }
328 
329  //phase0 rphi == phase2 upper
330  uint32_t tibUpper(const DetId &id) const { return tibRPhi(id); }
331  uint32_t tidUpper(const DetId &id) const { return tidRPhi(id); }
332  uint32_t tobUpper(const DetId &id) const { return tobRPhi(id); }
333  uint32_t tecUpper(const DetId &id) const { return tecRPhi(id); }
334 
335  //phase0 glued
336  uint32_t tibGlued(const DetId &id) const {
337  uint32_t testId = (id.rawId()>>tibVals_.sterStartBit_) & tibVals_.sterMask_;
338  return ( testId == 0 ) ? 0 : (id.rawId() - testId);
339  }
340 
341  uint32_t tecGlued(const DetId &id) const {
342  uint32_t testId = (id.rawId()>>tecVals_.sterStartBit_) & tecVals_.sterMask_;
343  return ( testId == 0 ) ? 0 : (id.rawId() - testId);
344  }
345 
346  uint32_t tobGlued(const DetId &id) const {
347  uint32_t testId = (id.rawId()>>tobVals_.sterStartBit_) & tobVals_.sterMask_;
348  return ( testId == 0 ) ? 0 : (id.rawId() - testId);
349  }
350 
351  uint32_t tidGlued(const DetId &id) const {
352  uint32_t testId = (id.rawId()>>tidVals_.sterStartBit_) & tidVals_.sterMask_;
353  return ( testId == 0 ) ? 0 : (id.rawId() - testId);
354  }
355 
356  //phase0 glued == phase2 stack
357  uint32_t tibStack(const DetId &id) const { return tibGlued(id); }
358  uint32_t tidStack(const DetId &id) const { return tidGlued(id); }
359  uint32_t tobStack(const DetId &id) const { return tobGlued(id); }
360  uint32_t tecStack(const DetId &id) const { return tecGlued(id); }
361 
362  //these should be used now!!
363  DetId partnerDetId(const DetId &id) const;
364 
365  DetId tibPartnerDetId(const DetId &id) const {
366  if ( ((id.rawId()>>tibVals_.sterStartBit_) & tibVals_.sterMask_ ) == 1 ) {
367  return DetId( id.rawId() + 1 );
368  } else if ( ((id.rawId()>>tibVals_.sterStartBit_) & tibVals_.sterMask_ ) == 2 ) {
369  return DetId( id.rawId() - 1 );
370  } else { return DetId(); }
371  }
372 
373  DetId tobPartnerDetId(const DetId &id) const {
374  if ( ((id.rawId()>>tobVals_.sterStartBit_) & tobVals_.sterMask_ ) == 1 ) {
375  return DetId( id.rawId() + 1 );
376  } else if ( ((id.rawId()>>tobVals_.sterStartBit_) & tobVals_.sterMask_ ) == 2 ) {
377  return DetId( id.rawId() - 1 );
378  } else { return DetId(); }
379  }
380 
381  DetId tidPartnerDetId(const DetId &id) const {
382  if ( ((id.rawId()>>tidVals_.sterStartBit_) & tidVals_.sterMask_ ) == 1 ) {
383  return DetId( id.rawId() + 1 );
384  } else if ( ((id.rawId()>>tidVals_.sterStartBit_) & tidVals_.sterMask_ ) == 2 ) {
385  return DetId( id.rawId() - 1 );
386  } else { return DetId(); }
387  }
388 
389  uint32_t tecPartnerDetId(const DetId &id) const {
390  if ( ((id.rawId()>>tecVals_.sterStartBit_) & tecVals_.sterMask_ ) == 1 ) {
391  return DetId( id.rawId() + 1 );
392  } else if ( ((id.rawId()>>tecVals_.sterStartBit_) & tecVals_.sterMask_ ) == 2 ) {
393  return DetId( id.rawId() - 1 );
394  } else { return DetId(); }
395  }
396 
397  //misc tec
398  std::vector<unsigned int> tecPetalInfo(const DetId &id) const {
399  std::vector<unsigned int> num;
400  num.push_back(tecOrder(id));
401  num.push_back(tecPetalNumber(id));
402  return num ;
403  }
404 
405  bool tecIsBackPetal(const DetId &id) const {
406  return (tecOrder(id)==1);
407  }
408 
409  bool tecIsFrontPetal(const DetId &id) const {return !tecIsBackPetal(id);}
410 
411  //misc tib
412  unsigned int tibString(const DetId &id) const {
413  return (id.rawId()>>tibVals_.strStartBit_)&tibVals_.strMask_;
414  }
415 
416  std::vector<unsigned int> tibStringInfo(const DetId &id) const
417  { std::vector<unsigned int> num;
418  num.push_back( tibSide(id) );
419  num.push_back( tibOrder(id) );
420  num.push_back(tibString(id));
421  return num ;
422  }
423 
424  bool tibIsInternalString(const DetId &id) const {
425  return (tibOrder(id)==1);
426  }
427 
428  bool tibIsExternalString(const DetId &id) const {
429  return !tibIsInternalString(id);
430  }
431 
432  //misc tid
433  std::vector<unsigned int> tidModuleInfo(const DetId &id) const {
434  std::vector<unsigned int> num;
435  num.push_back( tidOrder(id) );
436  num.push_back( tidModule(id) );
437  return num ;
438  }
439 
440  bool tidIsBackRing(const DetId &id) const {
441  return (tidOrder(id)==1);
442  }
443 
444  bool tidIsFrontRing(const DetId &id) const {return !tidIsBackRing(id);}
445 
446 
447  //misc pf
448  unsigned int pxfDisk(const DetId &id) const {
449  return int((id.rawId()>>pfVals_.diskStartBit_) & pfVals_.diskMask_);
450  }
451  unsigned int pxfBlade(const DetId &id) const {
452  return int((id.rawId()>>pfVals_.bladeStartBit_) & pfVals_.bladeMask_);
453  }
454  unsigned int pxfPanel(const DetId &id) const {
455  return int((id.rawId()>>pfVals_.panelStartBit_) & pfVals_.panelMask_);
456  }
457 
458  //old constructors, now return DetId
459  DetId pxbDetId(uint32_t layer,
460  uint32_t ladder,
461  uint32_t module) const {
462  //uply
464  uint32_t rawid=id.rawId();
465  rawid |= (layer& pbVals_.layerMask_) << pbVals_.layerStartBit_ |
468  return DetId(rawid);
469  }
470 
471  DetId pxfDetId(uint32_t side,
472  uint32_t disk,
473  uint32_t blade,
474  uint32_t panel,
475  uint32_t module) const {
477  uint32_t rawid=id.rawId();
478  rawid |= (side& pfVals_.sideMask_) << pfVals_.sideStartBit_ |
483  return DetId(rawid);
484  }
485 
486  DetId tecDetId(uint32_t side, uint32_t wheel,
487  uint32_t petal_fw_bw, uint32_t petal,
488  uint32_t ring, uint32_t module, uint32_t ster) const {
489 
491  uint32_t rawid=id.rawId();
492 
493  rawid |= (side& tecVals_.sideMask_) << tecVals_.sideStartBit_ |
500  return DetId(rawid);
501  }
502 
503  DetId tibDetId(uint32_t layer,
504  uint32_t str_fw_bw,
505  uint32_t str_int_ext,
506  uint32_t str,
507  uint32_t module,
508  uint32_t ster) const {
510  uint32_t rawid=id.rawId();
511  rawid |= (layer& tibVals_.layerMask_) << tibVals_.layerStartBit_ |
517  return DetId(rawid);
518  }
519 
520  DetId tidDetId(uint32_t side,
521  uint32_t wheel,
522  uint32_t ring,
523  uint32_t module_fw_bw,
524  uint32_t module,
525  uint32_t ster) const {
527  uint32_t rawid=id.rawId();
528  rawid |= (side& tidVals_.sideMask_) << tidVals_.sideStartBit_ |
534  return DetId(rawid);
535  }
536 
537  DetId tobDetId(uint32_t layer,
538  uint32_t rod_fw_bw,
539  uint32_t rod,
540  uint32_t module,
541  uint32_t ster) const {
543  uint32_t rawid=id.rawId();
544  rawid |= (layer& tobVals_.layerMask_) << tobVals_.layerStartBit_ |
549  return DetId(rawid);
550  }
551 
552  std::pair<DetId, SameLayerComparator> pxbDetIdLayerComparator(uint32_t layer) const {
553  return std::make_pair(pxbDetId(layer, 1,1), SameLayerComparator(this));
554  }
555 
556  std::pair<DetId, SameLayerComparator> pxfDetIdDiskComparator(uint32_t side, uint32_t disk) const {
557  return std::make_pair(pxfDetId(side, disk, 1,1,1), SameLayerComparator(this));
558  }
559 
560  std::pair<DetId, SameLayerComparator> tecDetIdWheelComparator(uint32_t side, uint32_t wheel) const {
561  return std::make_pair(tecDetId(side, wheel, 1,1,1,1,1), SameLayerComparator(this));
562  }
563 
564  std::pair<DetId, SameLayerComparator> tibDetIdLayerComparator(uint32_t layer) const {
565  return std::make_pair(tibDetId(layer, 1,1,1,1,1), SameLayerComparator(this));
566  }
567 
568  std::pair<DetId, SameLayerComparator> tidDetIdWheelComparator(uint32_t side, uint32_t wheel) const {
569  return std::make_pair(tidDetId(side, wheel, 1,1,1,1), SameLayerComparator(this));
570  }
571 
572  std::pair<DetId, SameLayerComparator> tobDetIdLayerComparator(uint32_t layer) const {
573  return std::make_pair(tobDetId(layer, 1,1,1,1), SameLayerComparator(this));
574  }
575 
576  std::string print(DetId detid) const;
577 
579 
580  private:
581 
584 
589 
590 };
591 
592 #endif
593 
DetId tidPartnerDetId(const DetId &id) const
uint32_t tibStack(const DetId &id) const
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
uint32_t upper(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
bool tobIsStereo(const DetId &id) const
uint32_t tobLower(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
uint32_t tidRPhi(const DetId &id) const
unsigned int pxbLadder(const DetId &id) const
uint32_t tobStack(const DetId &id) const
unsigned int side(const DetId &id) const
uint32_t tecGlued(const DetId &id) const
bool isStereo(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
uint32_t tecRPhi(const DetId &id) 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
uint32_t tecPartnerDetId(const DetId &id) const
PixelEndcapValues pfVals_
DetId partnerDetId(const DetId &id) const
bool tidIsStereo(const DetId &id) const
DetId tibPartnerDetId(const DetId &id) const
DetId tobPartnerDetId(const DetId &id) const
bool tidIsZMinusSide(const DetId &id) const
bool isLower(const DetId &id) const
bool tibIsZPlusSide(const DetId &id) const
unsigned int module(const DetId &id) const
bool tecIsStereo(const DetId &id) const
uint32_t tibRPhi(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
uint32_t tecUpper(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
uint32_t tidStack(const DetId &id) 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
bool isUpper(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
bool tidIsRPhi(const DetId &id) const
uint32_t tibGlued(const DetId &id) const
bool tidIsZPlusSide(const DetId &id) const
unsigned int module_fw_bwStartBit_
uint32_t stack(const DetId &id) const
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
uint32_t tidLower(const DetId &id) const
bool tibIsStereo(const DetId &id) const
bool tidIsDoubleSide(const DetId &id) const
uint32_t tecLower(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
return(e1-e2)*(e1-e2)+dp *dp
bool tecIsZPlusSide(const DetId &id) const
uint32_t lower(const DetId &id) const
unsigned int tidOrder(const DetId &id) const
uint32_t tecStereo(const DetId &id) const
uint32_t tibUpper(const DetId &id) const
uint32_t tecStack(const DetId &id) const
unsigned int pxfSide(const DetId &id) const
uint32_t tibLower(const DetId &id) const
unsigned int tecPetalNumber(const DetId &id) const
uint32_t tobUpper(const DetId &id) const
DetId pxbDetId(uint32_t layer, uint32_t ladder, uint32_t module) const
bool isRPhi(const DetId &id) 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
uint32_t glued(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
uint32_t tidUpper(const DetId &id) const
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 tobRPhi(const DetId &id) const
uint32_t tidGlued(const DetId &id) const