CMS 3D CMS Logo

DataRecord.h
Go to the documentation of this file.
1 #ifndef DataFormats_RPCDigi_DataRecord_H
2 #define DataFormats_RPCDigi_DataRecord_H
3 
4 #include <boost/cstdint.hpp>
5 #include <string>
6 #include <bitset>
7 #include <sstream>
8 
9 namespace rpcrawtodigi {
10  class DataRecord {
11  public:
12  typedef uint16_t Data;
14  None = 0,
18  Empty = 4,
19  RDDM = 5,
20  SDDM = 6,
21  RCDM = 7,
22  RDM = 8,
24  };
25 
26  public:
27  explicit DataRecord(const Data& data = None) : theData(data) {}
28 
29  virtual ~DataRecord() {}
30 
31  const Data& data() const { return theData; }
32 
33  DataRecordType type() const;
34 
35  static std::string name(const DataRecordType& code);
36 
37  std::string print() const {
38  std::ostringstream str;
39  str << std::bitset<16>(theData);
40  return str.str();
41  }
42 
43  static std::string print(const DataRecord& record);
44 
45  protected:
46  Data theData;
47  };
48 } // namespace rpcrawtodigi
49 #endif
JetCorrectorParameters::Record record
Definition: classes.h:7
DataRecord(const Data &data=None)
Definition: DataRecord.h:27
static std::string name(const DataRecordType &code)
Definition: DataRecord.cc:58
const Data & data() const
Definition: DataRecord.h:31
std::string print() const
Definition: DataRecord.h:37
#define str(s)
DataRecordType type() const
Definition: DataRecord.cc:13