CMS 3D CMS Logo

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

Detector ID class for CTPPS Totem Timing detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bits [17:18] : 2 bits for UFSD plane 0,1,2,3 Bits [12:16] : 5 bits for UFSD channel numbers 1,2,3,..16 Bits [0:11] : unspecified yet. More...

#include <TotemTimingDetId.h>

Inheritance diagram for TotemTimingDetId:
CTPPSDetId DetId

Public Types

enum  { ID_NOT_SET = 28 }
 
- Public Types inherited from CTPPSDetId
enum  NameFlag { nShort, nFull, nPath }
 type of name returned by *Name functions More...
 
enum  SubDetector { sdTrackingStrip = 3, sdTrackingPixel = 4, sdTimingDiamond = 5, sdTimingFastSilicon = 6 }
 CTPPS sub-detectors. More...
 
- 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

uint32_t channel () const
 
void channelName (std::string &name, NameFlag flag=nFull) const
 
uint32_t plane () const
 
TotemTimingDetId planeId () const
 
void planeName (std::string &name, NameFlag flag=nFull) const
 
void setChannel (uint32_t channel)
 
void setPlane (uint32_t channel)
 
 TotemTimingDetId (const CTPPSDetId &id)
 
 TotemTimingDetId (uint32_t arm, uint32_t station, uint32_t romanPot=0, uint32_t plane=0, uint32_t channel=0)
 Construct from hierarchy indices. More...
 
 TotemTimingDetId (uint32_t id)
 Construct from a raw id. More...
 
- Public Member Functions inherited from CTPPSDetId
uint32_t arm () const
 
CTPPSDetId armId () const
 
void armName (std::string &name, NameFlag flag=nFull) const
 
 CTPPSDetId (uint32_t id)
 Construct from a raw id. More...
 
 CTPPSDetId (uint32_t SubDet, uint32_t Arm, uint32_t Station, uint32_t RomanPot=0)
 Construct from hierarchy indeces. More...
 
uint32_t rp () const
 
CTPPSDetId rpId () const
 
void rpName (std::string &name, NameFlag flag=nFull) const
 
void setArm (uint32_t arm)
 
void setRP (uint32_t rp)
 
void setStation (uint32_t station)
 
uint32_t station () const
 
CTPPSDetId stationId () const
 
void stationName (std::string &name, NameFlag flag=nFull) const
 
void subDetectorName (std::string &name, NameFlag flag=nFull) 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 (Detector det, int subdet)
 Create an id, filling the detector and subdetector fields as specified. More...
 
constexpr DetId (uint32_t id)
 Create an id from a raw number. 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 Member Functions

static bool check (unsigned int raw)
 returns true if the raw ID is a PPS-timing one More...
 

Static Public Attributes

static constexpr uint32_t lowMaskChannel = 0xFFF
 
static constexpr uint32_t lowMaskPlane = 0x1FFFF
 
static constexpr uint32_t maskChannel = 0x1F
 
static constexpr uint32_t maskPlane = 0x3
 
static constexpr uint32_t maxChannel = 31
 
static constexpr uint32_t maxPlane = 3
 
static constexpr uint32_t startDetBit = 12
 
static constexpr uint32_t startPlaneBit = 17
 
- Static Public Attributes inherited from CTPPSDetId
static const uint32_t lowMaskArm = 0xFFFFFF
 
static const uint32_t lowMaskRP = 0x7FFFF
 
static const uint32_t lowMaskStation = 0x3FFFFF
 
static const uint32_t maskArm = 0x1
 
static const uint32_t maskRP = 0x7
 
static const uint32_t maskStation = 0x3
 
static const uint32_t maxArm = 1
 
static const uint32_t maxRP = 6
 
static const uint32_t maxStation = 2
 
static const uint32_t startArmBit = 24
 
static const uint32_t startRPBit = 19
 
static const uint32_t startStationBit = 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
 

Additional Inherited Members

- Protected Attributes inherited from DetId
uint32_t id_
 

Detailed Description

Detector ID class for CTPPS Totem Timing detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bits [17:18] : 2 bits for UFSD plane 0,1,2,3 Bits [12:16] : 5 bits for UFSD channel numbers 1,2,3,..16 Bits [0:11] : unspecified yet.

This class is very similar to CTPPSDiamondDetId; however the detector is completely separated, therefore it is useful to keep them separate and independent.

Definition at line 26 of file TotemTimingDetId.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
ID_NOT_SET 

Definition at line 30 of file TotemTimingDetId.h.

33 : CTPPSDetId(id) {}

Constructor & Destructor Documentation

◆ TotemTimingDetId() [1/3]

TotemTimingDetId::TotemTimingDetId ( uint32_t  id)
explicit

Construct from a raw id.

Definition at line 10 of file TotemTimingDetId.cc.

11  : CTPPSDetId(id) {
12  if (!check(id)) {
13  throw cms::Exception("InvalidDetId") << "TotemTimingDetId ctor:"
14  << " channel: " << channel() << " subdet: " << subdetId()
15  << " is not a valid Totem Timing id";
16  }

References channel(), check(), Exception, and DetId::subdetId().

◆ TotemTimingDetId() [2/3]

TotemTimingDetId::TotemTimingDetId ( const CTPPSDetId id)
inline

Definition at line 34 of file TotemTimingDetId.h.

42 {

◆ TotemTimingDetId() [3/3]

TotemTimingDetId::TotemTimingDetId ( uint32_t  arm,
uint32_t  station,
uint32_t  romanPot = 0,
uint32_t  plane = 0,
uint32_t  channel = 0 
)

Construct from hierarchy indices.

Definition at line 20 of file TotemTimingDetId.cc.

22  : CTPPSDetId(sdTimingFastSilicon, arm, station, romanPot) {
23  if (arm > maxArm || station > maxStation || romanPot > maxRP || plane > maxPlane || channel > maxChannel) {
24  throw cms::Exception("InvalidDetId") << "TotemTimingDetId ctor:"
25  << " Invalid parameters:"
26  << " arm=" << arm << " station=" << station << " rp=" << romanPot
27  << " plane=" << plane << " detector=" << channel << std::endl;
28  }
29 
30  uint32_t ok = 0xfe000000;
31  id_ &= ok;
32 
33  id_ |= ((arm & maskArm) << startArmBit);
35  id_ |= ((romanPot & maskRP) << startRPBit);
36  id_ |= ((plane & maskPlane) << startPlaneBit);
37  id_ |= ((channel & maskChannel) << startDetBit);

References CTPPSDetId::arm(), channel(), Exception, DetId::id_, CTPPSDetId::maskArm, maskChannel, maskPlane, CTPPSDetId::maskRP, CTPPSDetId::maskStation, CTPPSDetId::maxArm, maxChannel, maxPlane, CTPPSDetId::maxRP, CTPPSDetId::maxStation, convertSQLiteXML::ok, plane(), CTPPSDetId::startArmBit, startDetBit, startPlaneBit, CTPPSDetId::startRPBit, CTPPSDetId::startStationBit, and CTPPSDetId::station().

Member Function Documentation

◆ channel()

uint32_t TotemTimingDetId::channel ( ) const
inline

◆ channelName()

void TotemTimingDetId::channelName ( std::string &  name,
NameFlag  flag = nFull 
) const
inline

Definition at line 86 of file TotemTimingDetId.h.

86  {
87  case nShort:
88  name = "";
89  break;
90  case nFull:
92  name += "_";
93  break;
94  case nPath:
96  name += "/channel ";
97  break;
98  }
99  name += std::to_string(channel());
100  }
101 };

References RemoveAddSevLevel::flag, Skims_PA_cff::name, CTPPSDetId::nFull, CTPPSDetId::nPath, CTPPSDetId::nShort, and planeName().

Referenced by TotemTimingDQMSource::ChannelPlots::ChannelPlots().

◆ check()

static bool TotemTimingDetId::check ( unsigned int  raw)
inlinestatic

returns true if the raw ID is a PPS-timing one

Definition at line 43 of file TotemTimingDetId.h.

48  { return ((id_ >> startPlaneBit) & maskPlane); }

Referenced by TotemTimingDetId().

◆ plane()

uint32_t TotemTimingDetId::plane ( ) const
inline

◆ planeId()

TotemTimingDetId TotemTimingDetId::planeId ( ) const
inline

Definition at line 65 of file TotemTimingDetId.h.

◆ planeName()

void TotemTimingDetId::planeName ( std::string &  name,
NameFlag  flag = nFull 
) const
inline

Definition at line 69 of file TotemTimingDetId.h.

69  {
70  case nShort:
71  name = "";
72  break;
73  case nFull:
74  rpName(name, flag);
75  name += "_";
76  break;
77  case nPath:
78  rpName(name, flag);
79  name += "/plane ";
80  break;
81  }
82  name += std::to_string(plane());
83  }
84 

References RemoveAddSevLevel::flag, Skims_PA_cff::name, CTPPSDetId::nFull, CTPPSDetId::nPath, CTPPSDetId::nShort, and CTPPSDetId::rpName().

Referenced by channelName(), and TotemTimingDQMSource::PlanePlots::PlanePlots().

◆ setChannel()

void TotemTimingDetId::setChannel ( uint32_t  channel)
inline

Definition at line 58 of file TotemTimingDetId.h.

64  { return TotemTimingDetId(rawId() & (~lowMaskPlane)); }

Referenced by TotemTimingDQMSource::analyze().

◆ setPlane()

void TotemTimingDetId::setPlane ( uint32_t  channel)
inline

Definition at line 51 of file TotemTimingDetId.h.

55  { return ((id_ >> startDetBit) & maskChannel); }

Referenced by TotemTimingDQMSource::analyze().

Member Data Documentation

◆ lowMaskChannel

constexpr uint32_t TotemTimingDetId::lowMaskChannel = 0xFFF
staticconstexpr

Definition at line 40 of file TotemTimingDetId.h.

◆ lowMaskPlane

constexpr uint32_t TotemTimingDetId::lowMaskPlane = 0x1FFFF
staticconstexpr

Definition at line 39 of file TotemTimingDetId.h.

◆ maskChannel

constexpr uint32_t TotemTimingDetId::maskChannel = 0x1F
staticconstexpr

Definition at line 40 of file TotemTimingDetId.h.

Referenced by TotemTimingDetId().

◆ maskPlane

constexpr uint32_t TotemTimingDetId::maskPlane = 0x3
staticconstexpr

Definition at line 39 of file TotemTimingDetId.h.

Referenced by TotemTimingDetId().

◆ maxChannel

constexpr uint32_t TotemTimingDetId::maxChannel = 31
staticconstexpr

Definition at line 40 of file TotemTimingDetId.h.

Referenced by TotemTimingDetId().

◆ maxPlane

constexpr uint32_t TotemTimingDetId::maxPlane = 3
staticconstexpr

Definition at line 39 of file TotemTimingDetId.h.

Referenced by TotemTimingDetId().

◆ startDetBit

constexpr uint32_t TotemTimingDetId::startDetBit = 12
staticconstexpr

Definition at line 40 of file TotemTimingDetId.h.

Referenced by TotemTimingDetId().

◆ startPlaneBit

constexpr uint32_t TotemTimingDetId::startPlaneBit = 17
staticconstexpr

Definition at line 39 of file TotemTimingDetId.h.

Referenced by TotemTimingDetId().

TotemTimingDetId::channel
uint32_t channel() const
Definition: TotemTimingDetId.h:56
CTPPSDetId::maxRP
static const uint32_t maxRP
Definition: CTPPSDetId.h:51
TotemTimingDetId::startDetBit
static constexpr uint32_t startDetBit
Definition: TotemTimingDetId.h:40
TotemTimingDetId::maxChannel
static constexpr uint32_t maxChannel
Definition: TotemTimingDetId.h:40
CTPPSDetId::CTPPSDetId
CTPPSDetId(uint32_t id)
Construct from a raw id.
Definition: CTPPSDetId.cc:34
TotemTimingDetId::TotemTimingDetId
TotemTimingDetId(uint32_t id)
Construct from a raw id.
Definition: TotemTimingDetId.cc:10
CTPPSDetId::maxArm
static const uint32_t maxArm
Definition: CTPPSDetId.h:49
CTPPSDetId::sdTimingFastSilicon
Definition: CTPPSDetId.h:44
CTPPSDetId::nShort
Definition: CTPPSDetId.h:87
TotemTimingDetId::check
static bool check(unsigned int raw)
returns true if the raw ID is a PPS-timing one
Definition: TotemTimingDetId.h:43
TotemTimingDetId::plane
uint32_t plane() const
Definition: TotemTimingDetId.h:49
CTPPSDetId::startArmBit
static const uint32_t startArmBit
Definition: CTPPSDetId.h:49
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
CTPPSDetId::nPath
Definition: CTPPSDetId.h:87
CTPPSDetId::station
uint32_t station() const
Definition: CTPPSDetId.h:62
CTPPSDetId::startStationBit
static const uint32_t startStationBit
Definition: CTPPSDetId.h:50
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
CTPPSDetId::arm
uint32_t arm() const
Definition: CTPPSDetId.h:55
DetId::id_
uint32_t id_
Definition: DetId.h:69
CTPPSDetId::nFull
Definition: CTPPSDetId.h:87
TotemTimingDetId::maskPlane
static constexpr uint32_t maskPlane
Definition: TotemTimingDetId.h:39
CTPPSDetId::maskStation
static const uint32_t maskStation
Definition: CTPPSDetId.h:50
CTPPSDetId::maxStation
static const uint32_t maxStation
Definition: CTPPSDetId.h:50
CTPPSDetId::startRPBit
static const uint32_t startRPBit
Definition: CTPPSDetId.h:51
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
Exception
Definition: hltDiff.cc:245
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
TotemTimingDetId::maxPlane
static constexpr uint32_t maxPlane
Definition: TotemTimingDetId.h:39
TotemTimingDetId::planeName
void planeName(std::string &name, NameFlag flag=nFull) const
Definition: TotemTimingDetId.h:69
TotemTimingDetId::lowMaskPlane
static constexpr uint32_t lowMaskPlane
Definition: TotemTimingDetId.h:39
TotemTimingDetId::startPlaneBit
static constexpr uint32_t startPlaneBit
Definition: TotemTimingDetId.h:39
TotemTimingDetId::maskChannel
static constexpr uint32_t maskChannel
Definition: TotemTimingDetId.h:40
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:117
CTPPSDetId::maskArm
static const uint32_t maskArm
Definition: CTPPSDetId.h:49
CTPPSDetId::rpName
void rpName(std::string &name, NameFlag flag=nFull) const
Definition: CTPPSDetId.h:132
CTPPSDetId::maskRP
static const uint32_t maskRP
Definition: CTPPSDetId.h:51