CMS 3D CMS Logo

CSCWireDigi.cc
Go to the documentation of this file.
1 
9 #include <iostream>
10 #include <cstdint>
11 
13 
14 CSCWireDigi::CSCWireDigi(int wire, unsigned int tbinb) {
16  wire_ = wire & 0x0000FFFF;
17  tbinb_ = tbinb;
19  wireBX_ = (wire >> 16) & 0x0000FFFF;
21  wireBXandWires_ = wire;
22 }
23 
26  wire_ = 0;
27  tbinb_ = 0;
28  wireBX_ = 0;
29  wireBXandWires_ = 0;
30 }
31 
36  uint32_t tbit = 1;
37  int tbin = -1;
38  for (int i = 0; i < 32; i++) {
39  if (tbit & tbinb_)
40  tbin = i;
41  if (tbin > -1)
42  break;
43  tbit = tbit << 1;
44  }
45  return tbin;
46 }
48 std::vector<int> CSCWireDigi::getTimeBinsOn() const {
49  std::vector<int> tbins;
50  uint32_t tbit = tbinb_;
51  uint32_t one = 1;
52  for (int i = 0; i < 32; i++) {
53  if (tbit & one)
54  tbins.push_back(i);
55  tbit = tbit >> 1;
56  if (tbit == 0)
57  break;
58  }
59  return tbins;
60 }
61 
63 
64 void CSCWireDigi::print() const {
65  std::ostringstream ost;
66  ost << "CSCWireDigi | wg " << getWireGroup() << " | "
67  << " BX # " << getWireGroupBX() << " | "
68  << " BX + Wire " << std::hex << getBXandWireGroup() << " | " << std::dec << " First Time Bin On " << getTimeBin()
69  << " | Time Bins On ";
70  std::vector<int> tbins = getTimeBinsOn();
71  for (unsigned int i = 0; i < tbins.size(); i++) {
72  ost << tbins[i] << " ";
73  }
74  edm::LogVerbatim("CSCDigi") << ost.str();
75 }
76 
77 std::ostream& operator<<(std::ostream& o, const CSCWireDigi& digi) {
78  o << " CSC Wire " << digi.getWireGroup() << " CSC Wire First Time Bin On " << digi.getTimeBin()
79  << " CSC Time Bins On ";
80  for (unsigned int i = 0; i < digi.getTimeBinsOn().size(); ++i) {
81  o << " " << digi.getTimeBinsOn()[i];
82  }
83  return o;
84 }
mps_fire.i
i
Definition: mps_fire.py:428
SiPixelPI::one
Definition: SiPixelPayloadInspectorHelper.h:39
MessageLogger.h
CSCWireDigi::tbinb_
uint32_t tbinb_
Definition: CSCWireDigi.h:45
CSCWireDigi::wireBX_
int wireBX_
Definition: CSCWireDigi.h:48
CSCWireDigi::getWireGroup
int getWireGroup() const
default
Definition: CSCWireDigi.h:22
CSCWireDigi.h
operator<<
std::ostream & operator<<(std::ostream &o, const CSCWireDigi &digi)
Definition: CSCWireDigi.cc:77
EcalTangentSkim_cfg.o
o
Definition: EcalTangentSkim_cfg.py:36
CSCWireDigi::getWireGroupBX
int getWireGroupBX() const
return BX assigned for the wire group (16 upper bits from the wire group number)
Definition: CSCWireDigi.h:24
CSCWireDigi::wireBXandWires_
int wireBXandWires_
BX in the wire digis (16 upper bits from the wire group number)
Definition: CSCWireDigi.h:47
CSCWireDigi::getTimeBinsOn
std::vector< int > getTimeBinsOn() const
return vector of time bins ON
Definition: CSCWireDigi.cc:48
CSCWireDigi::getTimeBin
int getTimeBin() const
return first tbin ON number
Definition: CSCWireDigi.cc:35
CSCWireDigi
Definition: CSCWireDigi.h:14
CSCWireDigi::wire_
int wire_
Definition: CSCWireDigi.h:44
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
CSCWireDigi::getBeamCrossingTag
int getBeamCrossingTag() const
return tbin number, (obsolete, use getTimeBin() instead)
Definition: CSCWireDigi.cc:33
CSCWireDigi::CSCWireDigi
CSCWireDigi()
wiregroup#, tbin bit word
Definition: CSCWireDigi.cc:25
CSCWireDigi::print
void print() const
Print content of digi.
Definition: CSCWireDigi.cc:64
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
CSCWireDigi::getBXandWireGroup
int getBXandWireGroup() const
Definition: CSCWireDigi.h:27