CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Attributes | Static Private Attributes
ETLDetId Class Reference

Detector identifier class for the Endcap Timing Layer. More...

#include <ETLDetId.h>

Inheritance diagram for ETLDetId:
MTDDetId DetId

Public Types

enum  EtlLayout { EtlLayout::tp = 1, EtlLayout::v4 = 2, EtlLayout::v5 = 3 }
 
- Public Types inherited from MTDDetId
enum  MTDType { typeUNKNOWN = 0, BTL = 1, ETL = 2 }
 
enum  SubDetector { subUNKNOWN = 0, FastTime = 1 }
 
- Public Types inherited from DetId
enum  Detector {
  Tracker = 1, Muon = 2, Ecal = 3, Hcal = 4,
  Calo = 5, Forward = 6, VeryForward = 7, HGCalEE = 8,
  HGCalHSi = 9, HGCalHSc = 10, HGCalTrigger = 11
}
 

Public Member Functions

int discSide () const
 
uint32_t encodeSector (uint32_t &disc, uint32_t &discside, uint32_t &sector) const
 
 ETLDetId ()
 
 ETLDetId (const uint32_t &raw_id)
 
 ETLDetId (const DetId &det_id)
 
 ETLDetId (uint32_t zside, uint32_t ring, uint32_t module, uint32_t modtyp)
 
 ETLDetId (uint32_t zside, uint32_t disc, uint32_t discside, uint32_t sector, uint32_t module, uint32_t modtyp)
 
ETLDetId geographicalId () const
 
int modType () const
 
int module () const
 
int nDisc () const
 
uint32_t newForm (const uint32_t &rawid)
 
int sector () const
 
- Public Member Functions inherited from MTDDetId
 MTDDetId ()
 
 MTDDetId (const uint32_t &raw_id)
 
 MTDDetId (const DetId &det_id)
 
 MTDDetId (Detector det, int subdet)
 
int mtdRR () const
 
int mtdSide () const
 
int mtdSubDetector () const
 
SubDetector subDetector () const
 
int zside () const
 
- Public Member Functions inherited from DetId
constexpr Detector det () const
 get the detector field from this detid More...
 
constexpr DetId ()
 Create an empty or null id (also for persistence) More...
 
constexpr DetId (uint32_t id)
 Create an id from a raw number. More...
 
constexpr DetId (Detector det, int subdet)
 Create an id, filling the detector and subdetector fields as specified. More...
 
constexpr bool null () const
 is this a null id ? More...
 
constexpr operator uint32_t () const
 
constexpr bool operator!= (DetId id) const
 inequality More...
 
constexpr uint32_t operator() () const
 
constexpr bool operator< (DetId id) const
 comparison More...
 
constexpr bool operator== (DetId id) const
 equality More...
 
constexpr uint32_t rawId () const
 get the raw id More...
 
constexpr int subdetId () const
 get the contents of the subdetector field (not cast into any detector's numbering enum) More...
 

Static Public Attributes

static constexpr uint32_t kETLdiscSideMask = 0x1
 
static constexpr uint32_t kETLdiscSideOffset = 2
 
static constexpr uint32_t kETLmodTypeMask = 0x3
 
static constexpr uint32_t kETLmodTypeOffset = 3
 
static constexpr uint32_t kETLmoduleMask = 0x7FF
 
static constexpr uint32_t kETLmoduleOffset = 5
 
static constexpr uint32_t kETLnDiscMask = 0x1
 
static constexpr uint32_t kETLnDiscOffset = 3
 constants for the TDR ETL model More...
 
static constexpr uint32_t kETLsectorMask = 0x3
 
static constexpr int kETLv1maxModule = 176
 
static constexpr int kETLv1maxRing = 11
 
static constexpr int kETLv1nDisc = 1
 
static constexpr int kETLv4maxModule = 248
 
static constexpr int kETLv4maxRing = 16
 
static constexpr int kETLv4maxSector = 4
 
static constexpr int kETLv4nDisc = 2
 
static constexpr int kETLv5maxModule = 517
 
static constexpr int kETLv5maxRing = 14
 
static constexpr int kETLv5maxSector = 2
 
static constexpr int kETLv5nDisc = kETLv4nDisc
 
static constexpr uint32_t kSoff = 4
 
- Static Public Attributes inherited from MTDDetId
static const uint32_t kMTDsubdMask = 0x3
 
static const uint32_t kMTDsubdOffset = 23
 
static const uint32_t kRodRingMask = 0x3F
 
static const uint32_t kRodRingOffset = 16
 
static const uint32_t kZsideMask = 0x1
 
static const uint32_t kZsideOffset = 22
 
- Static Public Attributes inherited from DetId
static const int kDetMask = 0xF
 
static const int kDetOffset = 28
 
static const int kSubdetMask = 0x7
 
static const int kSubdetOffset = 25
 

Static Private Attributes

static constexpr uint32_t kETLformatV2 = 1
 
static constexpr uint32_t kETLoldFieldMask = 0x7FFF
 
static constexpr uint32_t kETLoldToNewShift = 2
 

Additional Inherited Members

- Protected Attributes inherited from DetId
uint32_t id_
 

Detailed Description

Detector identifier class for the Endcap Timing Layer.

bit 15-5 : module sequential number bit 4-3 : module type (unused so far)

Definition at line 15 of file ETLDetId.h.

Member Enumeration Documentation

◆ EtlLayout

enum ETLDetId::EtlLayout
strong
Enumerator
tp 
v4 
v5 

Definition at line 51 of file ETLDetId.h.

51 { tp = 1, v4 = 2, v5 = 3 };

Constructor & Destructor Documentation

◆ ETLDetId() [1/5]

ETLDetId::ETLDetId ( )
inline

Construct a null id

Definition at line 56 of file ETLDetId.h.

References DetId::id_, kETLformatV2, MTDDetId::kMTDsubdMask, and MTDDetId::kMTDsubdOffset.

57  id_ |= (MTDType::ETL & kMTDsubdMask) << kMTDsubdOffset;
58  id_ |= kETLformatV2;
59  }
MTDDetId()
Definition: MTDDetId.h:39
static const uint32_t kMTDsubdOffset
Definition: MTDDetId.h:29
static constexpr uint32_t kETLformatV2
Definition: ETLDetId.h:20
static const uint32_t kMTDsubdMask
Definition: MTDDetId.h:30
uint32_t id_
Definition: DetId.h:69

◆ ETLDetId() [2/5]

ETLDetId::ETLDetId ( const uint32_t &  raw_id)
inline

Construct from a raw value

Definition at line 62 of file ETLDetId.h.

References DetId::id_, kETLformatV2, MTDDetId::MTDDetId(), and newForm().

62  {
63  uint32_t tmpId = raw_id;
64  if ((tmpId & kETLformatV2) == 0) {
65  tmpId = newForm(tmpId);
66  }
67  id_ = MTDDetId(tmpId).rawId();
68  }
MTDDetId()
Definition: MTDDetId.h:39
static constexpr uint32_t kETLformatV2
Definition: ETLDetId.h:20
uint32_t id_
Definition: DetId.h:69
uint32_t newForm(const uint32_t &rawid)
Definition: ETLDetId.h:128

◆ ETLDetId() [3/5]

ETLDetId::ETLDetId ( const DetId det_id)
inline

Construct from generic DetId

Definition at line 71 of file ETLDetId.h.

References DetId::id_, kETLformatV2, MTDDetId::MTDDetId(), newForm(), and DetId::rawId().

71  {
72  uint32_t tmpId = det_id.rawId();
73  if ((tmpId & kETLformatV2) == 0) {
74  tmpId = newForm(tmpId);
75  }
76  id_ = MTDDetId(tmpId).rawId();
77  }
MTDDetId()
Definition: MTDDetId.h:39
static constexpr uint32_t kETLformatV2
Definition: ETLDetId.h:20
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
uint32_t id_
Definition: DetId.h:69
uint32_t newForm(const uint32_t &rawid)
Definition: ETLDetId.h:128

◆ ETLDetId() [4/5]

ETLDetId::ETLDetId ( uint32_t  zside,
uint32_t  ring,
uint32_t  module,
uint32_t  modtyp 
)
inline

Construct and fill only the det and sub-det fields.

Definition at line 80 of file ETLDetId.h.

References DetId::id_, kETLformatV2, kETLmodTypeMask, kETLmodTypeOffset, kETLmoduleMask, kETLmoduleOffset, MTDDetId::kMTDsubdMask, MTDDetId::kMTDsubdOffset, MTDDetId::kRodRingMask, MTDDetId::kRodRingOffset, MTDDetId::kZsideMask, MTDDetId::kZsideOffset, module(), relativeConstraints::ring, and MTDDetId::zside().

82  id_ |= (MTDType::ETL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset |
84  (modtyp & kETLmodTypeMask) << kETLmodTypeOffset;
85  id_ |= kETLformatV2;
86  }
static const uint32_t kRodRingOffset
Definition: MTDDetId.h:33
MTDDetId()
Definition: MTDDetId.h:39
static constexpr uint32_t kETLmodTypeOffset
Definition: ETLDetId.h:25
static const uint32_t kZsideOffset
Definition: MTDDetId.h:31
static constexpr uint32_t kETLmoduleOffset
Definition: ETLDetId.h:23
static const uint32_t kMTDsubdOffset
Definition: MTDDetId.h:29
static constexpr uint32_t kETLformatV2
Definition: ETLDetId.h:20
static const uint32_t kRodRingMask
Definition: MTDDetId.h:34
int module() const
Definition: ETLDetId.h:105
static const uint32_t kMTDsubdMask
Definition: MTDDetId.h:30
static constexpr uint32_t kETLmodTypeMask
Definition: ETLDetId.h:26
static const uint32_t kZsideMask
Definition: MTDDetId.h:32
uint32_t id_
Definition: DetId.h:69
static constexpr uint32_t kETLmoduleMask
Definition: ETLDetId.h:24
int zside() const
Definition: MTDDetId.h:61

◆ ETLDetId() [5/5]

ETLDetId::ETLDetId ( uint32_t  zside,
uint32_t  disc,
uint32_t  discside,
uint32_t  sector,
uint32_t  module,
uint32_t  modtyp 
)
inline

Definition at line 94 of file ETLDetId.h.

References TtSemiLepEvtBuilder_cfi::disc, encodeSector(), DetId::id_, kETLformatV2, kETLmodTypeMask, kETLmodTypeOffset, kETLmoduleMask, kETLmoduleOffset, MTDDetId::kMTDsubdMask, MTDDetId::kMTDsubdOffset, MTDDetId::kRodRingMask, MTDDetId::kRodRingOffset, MTDDetId::kZsideMask, MTDDetId::kZsideOffset, module(), sector(), and MTDDetId::zside().

96  id_ |= (MTDType::ETL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset |
99  id_ |= kETLformatV2;
100  }
static const uint32_t kRodRingOffset
Definition: MTDDetId.h:33
MTDDetId()
Definition: MTDDetId.h:39
static constexpr uint32_t kETLmodTypeOffset
Definition: ETLDetId.h:25
static const uint32_t kZsideOffset
Definition: MTDDetId.h:31
static constexpr uint32_t kETLmoduleOffset
Definition: ETLDetId.h:23
static const uint32_t kMTDsubdOffset
Definition: MTDDetId.h:29
uint32_t encodeSector(uint32_t &disc, uint32_t &discside, uint32_t &sector) const
Definition: ETLDetId.h:90
static constexpr uint32_t kETLformatV2
Definition: ETLDetId.h:20
static const uint32_t kRodRingMask
Definition: MTDDetId.h:34
int sector() const
Definition: ETLDetId.h:116
int module() const
Definition: ETLDetId.h:105
static const uint32_t kMTDsubdMask
Definition: MTDDetId.h:30
static constexpr uint32_t kETLmodTypeMask
Definition: ETLDetId.h:26
static const uint32_t kZsideMask
Definition: MTDDetId.h:32
uint32_t id_
Definition: DetId.h:69
static constexpr uint32_t kETLmoduleMask
Definition: ETLDetId.h:24
int zside() const
Definition: MTDDetId.h:61

Member Function Documentation

◆ discSide()

int ETLDetId::discSide ( ) const
inline

Definition at line 119 of file ETLDetId.h.

References DetId::id_, kETLdiscSideMask, kETLdiscSideOffset, MTDDetId::kRodRingMask, and MTDDetId::kRodRingOffset.

Referenced by EtlDigiHitsValidation::analyze(), EtlSimHitsValidation::analyze(), EtlLocalRecoValidation::analyze(), MTDTopology::hshiftETL(), and MTDTopology::vshiftETL().

119  {
121  }
static constexpr uint32_t kETLdiscSideMask
Definition: ETLDetId.h:36
static const uint32_t kRodRingOffset
Definition: MTDDetId.h:33
static constexpr uint32_t kETLdiscSideOffset
Definition: ETLDetId.h:35
static const uint32_t kRodRingMask
Definition: MTDDetId.h:34
uint32_t id_
Definition: DetId.h:69

◆ encodeSector()

uint32_t ETLDetId::encodeSector ( uint32_t &  disc,
uint32_t &  discside,
uint32_t &  sector 
) const
inline

ETL TDR Construct and fill only the det and sub-det fields.

Definition at line 90 of file ETLDetId.h.

References TtSemiLepEvtBuilder_cfi::disc, kSoff, and sector().

Referenced by ETLDetId(), and ETLNumberingScheme::getUnitID().

90  {
91  return (sector + discside * kSoff + 2 * kSoff * disc);
92  }
int sector() const
Definition: ETLDetId.h:116
static constexpr uint32_t kSoff
Definition: ETLDetId.h:49

◆ geographicalId()

ETLDetId ETLDetId::geographicalId ( ) const
inline

◆ modType()

int ETLDetId::modType ( ) const
inline

Returns ETL module type number.

Definition at line 108 of file ETLDetId.h.

References DetId::id_, kETLmodTypeMask, and kETLmodTypeOffset.

Referenced by ETLDeviceSim::getHitsResponse(), MTDTopology::hshiftETL(), and MTDTopology::vshiftETL().

108 { return (id_ >> kETLmodTypeOffset) & kETLmodTypeMask; }
static constexpr uint32_t kETLmodTypeOffset
Definition: ETLDetId.h:25
static constexpr uint32_t kETLmodTypeMask
Definition: ETLDetId.h:26
uint32_t id_
Definition: DetId.h:69

◆ module()

int ETLDetId::module ( ) const
inline

Returns ETL module number.

Definition at line 105 of file ETLDetId.h.

References DetId::id_, kETLmoduleMask, and kETLmoduleOffset.

Referenced by EtlLocalRecoValidation::analyze(), ETLDetId(), ETLDeviceSim::getHitsResponse(), MTDTopology::hshiftETL(), and MTDTopology::vshiftETL().

105 { return (id_ >> kETLmoduleOffset) & kETLmoduleMask; }
static constexpr uint32_t kETLmoduleOffset
Definition: ETLDetId.h:23
uint32_t id_
Definition: DetId.h:69
static constexpr uint32_t kETLmoduleMask
Definition: ETLDetId.h:24

◆ nDisc()

int ETLDetId::nDisc ( ) const
inline

Definition at line 124 of file ETLDetId.h.

References DetId::id_, kETLnDiscMask, kETLnDiscOffset, MTDDetId::kRodRingMask, and MTDDetId::kRodRingOffset.

Referenced by EtlDigiHitsValidation::analyze(), EtlLocalRecoValidation::analyze(), and MtdTracksValidation::analyze().

124  {
125  return (((((id_ >> kRodRingOffset) & kRodRingMask) - 1) >> kETLnDiscOffset) & kETLnDiscMask) + 1;
126  }
static const uint32_t kRodRingOffset
Definition: MTDDetId.h:33
static const uint32_t kRodRingMask
Definition: MTDDetId.h:34
uint32_t id_
Definition: DetId.h:69
static constexpr uint32_t kETLnDiscOffset
constants for the TDR ETL model
Definition: ETLDetId.h:33
static constexpr uint32_t kETLnDiscMask
Definition: ETLDetId.h:34

◆ newForm()

uint32_t ETLDetId::newForm ( const uint32_t &  rawid)
inline

Definition at line 128 of file ETLDetId.h.

References kETLformatV2, kETLoldFieldMask, and kETLoldToNewShift.

Referenced by ETLDetId().

128  {
129  uint32_t fixedP = rawid & (0xFFFFFFFF - kETLoldFieldMask); // unchanged part of id
130  uint32_t shiftP = (rawid & kETLoldFieldMask) >> kETLoldToNewShift; // shifted part
131  return ((fixedP | shiftP) | kETLformatV2);
132  }
static constexpr uint32_t kETLformatV2
Definition: ETLDetId.h:20
static constexpr uint32_t kETLoldFieldMask
Definition: ETLDetId.h:19
static constexpr uint32_t kETLoldToNewShift
Definition: ETLDetId.h:18

◆ sector()

int ETLDetId::sector ( ) const
inline

Definition at line 116 of file ETLDetId.h.

References DetId::id_, kETLsectorMask, MTDDetId::kRodRingMask, and MTDDetId::kRodRingOffset.

Referenced by encodeSector(), ETLDetId(), and geometryXMLparser.DTAlignable::index().

116 { return ((((id_ >> kRodRingOffset) & kRodRingMask) - 1) & kETLsectorMask) + 1; }
static const uint32_t kRodRingOffset
Definition: MTDDetId.h:33
static constexpr uint32_t kETLsectorMask
Definition: ETLDetId.h:37
static const uint32_t kRodRingMask
Definition: MTDDetId.h:34
uint32_t id_
Definition: DetId.h:69

Member Data Documentation

◆ kETLdiscSideMask

constexpr uint32_t ETLDetId::kETLdiscSideMask = 0x1
static

Definition at line 36 of file ETLDetId.h.

Referenced by discSide().

◆ kETLdiscSideOffset

constexpr uint32_t ETLDetId::kETLdiscSideOffset = 2
static

Definition at line 35 of file ETLDetId.h.

Referenced by discSide().

◆ kETLformatV2

constexpr uint32_t ETLDetId::kETLformatV2 = 1
staticprivate

Definition at line 20 of file ETLDetId.h.

Referenced by ETLDetId(), and newForm().

◆ kETLmodTypeMask

constexpr uint32_t ETLDetId::kETLmodTypeMask = 0x3
static

Definition at line 26 of file ETLDetId.h.

Referenced by ETLDetId(), and modType().

◆ kETLmodTypeOffset

constexpr uint32_t ETLDetId::kETLmodTypeOffset = 3
static

Definition at line 25 of file ETLDetId.h.

Referenced by ETLDetId(), and modType().

◆ kETLmoduleMask

constexpr uint32_t ETLDetId::kETLmoduleMask = 0x7FF
static

Definition at line 24 of file ETLDetId.h.

Referenced by ETLDetLayerGeometryBuilder::buildLayer(), ETLDetId(), and module().

◆ kETLmoduleOffset

constexpr uint32_t ETLDetId::kETLmoduleOffset = 5
static

Definition at line 23 of file ETLDetId.h.

Referenced by ETLDetId(), and module().

◆ kETLnDiscMask

constexpr uint32_t ETLDetId::kETLnDiscMask = 0x1
static

Definition at line 34 of file ETLDetId.h.

Referenced by nDisc().

◆ kETLnDiscOffset

constexpr uint32_t ETLDetId::kETLnDiscOffset = 3
static

constants for the TDR ETL model

Definition at line 33 of file ETLDetId.h.

Referenced by nDisc().

◆ kETLoldFieldMask

constexpr uint32_t ETLDetId::kETLoldFieldMask = 0x7FFF
staticprivate

Definition at line 19 of file ETLDetId.h.

Referenced by newForm().

◆ kETLoldToNewShift

constexpr uint32_t ETLDetId::kETLoldToNewShift = 2
staticprivate

Definition at line 18 of file ETLDetId.h.

Referenced by newForm().

◆ kETLsectorMask

constexpr uint32_t ETLDetId::kETLsectorMask = 0x3
static

Definition at line 37 of file ETLDetId.h.

Referenced by sector().

◆ kETLv1maxModule

constexpr int ETLDetId::kETLv1maxModule = 176
static

Definition at line 29 of file ETLDetId.h.

Referenced by ETLNumberingScheme::getUnitID().

◆ kETLv1maxRing

constexpr int ETLDetId::kETLv1maxRing = 11
static

◆ kETLv1nDisc

constexpr int ETLDetId::kETLv1nDisc = 1
static

Definition at line 30 of file ETLDetId.h.

Referenced by ETLDetLayerGeometryBuilder::buildLayers().

◆ kETLv4maxModule

constexpr int ETLDetId::kETLv4maxModule = 248
static

Definition at line 41 of file ETLDetId.h.

Referenced by ETLNumberingScheme::getUnitID().

◆ kETLv4maxRing

constexpr int ETLDetId::kETLv4maxRing = 16
static

Definition at line 39 of file ETLDetId.h.

Referenced by ETLNumberingScheme::getUnitID().

◆ kETLv4maxSector

constexpr int ETLDetId::kETLv4maxSector = 4
static

Definition at line 40 of file ETLDetId.h.

Referenced by ETLDetLayerGeometryBuilder::buildLayers().

◆ kETLv4nDisc

constexpr int ETLDetId::kETLv4nDisc = 2
static

Definition at line 42 of file ETLDetId.h.

Referenced by ETLDetLayerGeometryBuilder::buildLayers().

◆ kETLv5maxModule

constexpr int ETLDetId::kETLv5maxModule = 517
static

Definition at line 46 of file ETLDetId.h.

Referenced by ETLNumberingScheme::getUnitID().

◆ kETLv5maxRing

constexpr int ETLDetId::kETLv5maxRing = 14
static

Definition at line 44 of file ETLDetId.h.

◆ kETLv5maxSector

constexpr int ETLDetId::kETLv5maxSector = 2
static

Definition at line 45 of file ETLDetId.h.

Referenced by ETLDetLayerGeometryBuilder::buildLayers().

◆ kETLv5nDisc

constexpr int ETLDetId::kETLv5nDisc = kETLv4nDisc
static

Definition at line 47 of file ETLDetId.h.

◆ kSoff

constexpr uint32_t ETLDetId::kSoff = 4
static

Definition at line 49 of file ETLDetId.h.

Referenced by encodeSector().