CMS 3D CMS Logo

ETLDetId.h
Go to the documentation of this file.
1 #ifndef DataFormats_ETLDetId_ETLDetId_h
2 #define DataFormats_ETLDetId_ETLDetId_h
3 
5 #include <ostream>
6 
15 class ETLDetId : public MTDDetId {
16 public:
17  static const uint32_t kETLmoduleOffset = 7;
18  static const uint32_t kETLmoduleMask = 0x1FF;
19  static const uint32_t kETLmodTypeOffset = 5;
20  static const uint32_t kETLmodTypeMask = 0x3;
21 
22  static constexpr int kETLv1maxRing = 11;
23  static constexpr int kETLv1maxModule = 176;
24  static constexpr int kETLv1nDisc = 1;
25 
27  static const uint32_t kETLnDiscOffset = 3;
28  static const uint32_t kETLnDiscMask = 0x1;
29  static const uint32_t kETLdiscSideOffset = 2;
30  static const uint32_t kETLdiscSideMask = 0x1;
31  static const uint32_t kETLsectorMask = 0x3;
32 
33  static constexpr int kETLv4maxRing = 16;
34  static constexpr int kETLv4maxModule = 248;
35  static constexpr int kETLv4nDisc = 2;
36 
37  static constexpr uint32_t kSoff = 4;
38 
39  // ---------- Constructors, enumerated types ----------
40 
43  id_ |= (MTDType::ETL & kMTDsubdMask) << kMTDsubdOffset;
44  }
45 
47  ETLDetId(const uint32_t& raw_id) : MTDDetId(raw_id) { ; }
48 
50  ETLDetId(const DetId& det_id) : MTDDetId(det_id.rawId()) { ; }
51 
53  ETLDetId(uint32_t zside, uint32_t ring, uint32_t module, uint32_t modtyp)
55  id_ |= (MTDType::ETL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset |
57  (modtyp & kETLmodTypeMask) << kETLmodTypeOffset;
58  }
59 
62  inline uint32_t encodeSector(uint32_t& disc, uint32_t& discside, uint32_t& sector) const {
63  return (sector + discside * kSoff + 2 * kSoff * disc);
64  }
65 
66  ETLDetId(uint32_t zside, uint32_t disc, uint32_t discside, uint32_t sector, uint32_t module, uint32_t modtyp)
68  id_ |= (MTDType::ETL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset |
71  }
72 
73  // ---------- Common methods ----------
74 
76  inline int module() const { return (id_ >> kETLmoduleOffset) & kETLmoduleMask; }
77 
79  inline int modType() const { return (id_ >> kETLmodTypeOffset) & kETLmodTypeMask; }
80 
81  ETLDetId geographicalId() const { return id_; }
82 
83  // --------- Methods for the TDR ETL model only -----------
84  // meaningless for TP model
85 
86  // starting from 1
87  inline int sector() const { return ((((id_ >> kRodRingOffset) & kRodRingMask) - 1) & kETLsectorMask) + 1; }
88 
89  // 0 = front, 1 = back
90  inline int discSide() const {
92  }
93 
94  // starting from 1
95  inline int nDisc() const {
96  return (((((id_ >> kRodRingOffset) & kRodRingMask) - 1) >> kETLnDiscOffset) & kETLnDiscMask) + 1;
97  }
98 };
99 
100 std::ostream& operator<<(std::ostream&, const ETLDetId&);
101 
102 #endif // DataFormats_ETLDetId_ETLDetId_h
ETLDetId::ETLDetId
ETLDetId(uint32_t zside, uint32_t ring, uint32_t module, uint32_t modtyp)
Definition: ETLDetId.h:53
ETLDetId::kETLnDiscOffset
static const uint32_t kETLnDiscOffset
constants for the TDR ETL model
Definition: ETLDetId.h:27
ETLDetId::kETLnDiscMask
static const uint32_t kETLnDiscMask
Definition: ETLDetId.h:28
ETLDetId::kETLmodTypeMask
static const uint32_t kETLmodTypeMask
Definition: ETLDetId.h:20
ETLDetId::modType
int modType() const
Definition: ETLDetId.h:79
ETLDetId::ETLDetId
ETLDetId(const uint32_t &raw_id)
Definition: ETLDetId.h:47
ETLDetId::kETLv4maxRing
static constexpr int kETLv4maxRing
Definition: ETLDetId.h:33
ForwardSubdetector
ForwardSubdetector
Definition: ForwardSubdetector.h:4
ETLDetId::kETLdiscSideMask
static const uint32_t kETLdiscSideMask
Definition: ETLDetId.h:30
ETLDetId::kETLv1maxModule
static constexpr int kETLv1maxModule
Definition: ETLDetId.h:23
MTDDetId::kZsideMask
static const uint32_t kZsideMask
Definition: MTDDetId.h:32
MTDDetId::kMTDsubdMask
static const uint32_t kMTDsubdMask
Definition: MTDDetId.h:30
ETLDetId::encodeSector
uint32_t encodeSector(uint32_t &disc, uint32_t &discside, uint32_t &sector) const
Definition: ETLDetId.h:62
ETLDetId
Detector identifier class for the Endcap Timing Layer.
Definition: ETLDetId.h:15
operator<<
std::ostream & operator<<(std::ostream &, const ETLDetId &)
Definition: ETLDetId.cc:4
ETLDetId::kETLv4nDisc
static constexpr int kETLv4nDisc
Definition: ETLDetId.h:35
ETLDetId::kETLmodTypeOffset
static const uint32_t kETLmodTypeOffset
Definition: ETLDetId.h:19
TtSemiLepEvtBuilder_cfi.disc
disc
Definition: TtSemiLepEvtBuilder_cfi.py:60
ETLDetId::module
int module() const
Definition: ETLDetId.h:76
ETLDetId::kETLdiscSideOffset
static const uint32_t kETLdiscSideOffset
Definition: ETLDetId.h:29
DetId
Definition: DetId.h:17
ETLDetId::discSide
int discSide() const
Definition: ETLDetId.h:90
ETLDetId::nDisc
int nDisc() const
Definition: ETLDetId.h:95
MTDDetId::zside
int zside() const
Definition: MTDDetId.h:61
ETLDetId::geographicalId
ETLDetId geographicalId() const
Definition: ETLDetId.h:81
ETLDetId::sector
int sector() const
Definition: ETLDetId.h:87
ETLDetId::ETLDetId
ETLDetId(uint32_t zside, uint32_t disc, uint32_t discside, uint32_t sector, uint32_t module, uint32_t modtyp)
Definition: ETLDetId.h:66
ETLDetId::ETLDetId
ETLDetId(const DetId &det_id)
Definition: ETLDetId.h:50
DetId::id_
uint32_t id_
Definition: DetId.h:69
MTDDetId.h
MTDDetId::kRodRingMask
static const uint32_t kRodRingMask
Definition: MTDDetId.h:34
MTDDetId::FastTime
Definition: MTDDetId.h:24
MTDDetId::kZsideOffset
static const uint32_t kZsideOffset
Definition: MTDDetId.h:31
module
Definition: vlib.h:198
ETLDetId::kETLv4maxModule
static constexpr int kETLv4maxModule
Definition: ETLDetId.h:34
MTDDetId::kMTDsubdOffset
static const uint32_t kMTDsubdOffset
Definition: MTDDetId.h:29
ETLDetId::kETLmoduleOffset
static const uint32_t kETLmoduleOffset
Definition: ETLDetId.h:17
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
ETLDetId::kETLmoduleMask
static const uint32_t kETLmoduleMask
Definition: ETLDetId.h:18
MTDDetId::kRodRingOffset
static const uint32_t kRodRingOffset
Definition: MTDDetId.h:33
MTDDetId
Detector identifier base class for the MIP Timing Layer.
Definition: MTDDetId.h:21
ETLDetId::kSoff
static constexpr uint32_t kSoff
Definition: ETLDetId.h:37
ETLDetId::kETLv1maxRing
static constexpr int kETLv1maxRing
Definition: ETLDetId.h:22
ETLDetId::ETLDetId
ETLDetId()
Definition: ETLDetId.h:42
relativeConstraints.ring
ring
Definition: relativeConstraints.py:68
ETLDetId::kETLsectorMask
static const uint32_t kETLsectorMask
Definition: ETLDetId.h:31
DetId::Forward
Definition: DetId.h:30
ETLDetId::kETLv1nDisc
static constexpr int kETLv1nDisc
Definition: ETLDetId.h:24