CMS 3D CMS Logo

RecordCD.h
Go to the documentation of this file.
1 #ifndef DataFormats_RPCDigi_RecordCD_H
2 #define DataFormats_RPCDigi_RecordCD_H
3 
5 #include <vector>
6 
7 namespace rpcrawtodigi {
8  class RecordCD : public DataRecord {
9  private:
10  static const int CD_TYPE_LESSTHENFLAG = 0x3;
11  static const int CD_TYPE_SHIFT = 14;
12 
13  static const int PARTITION_DATA_MASK = 0XFF;
14  static const int PARTITION_DATA_SHIFT = 0;
15 
16  static const int PARTITION_NUMBER_MASK = 0XF;
17  static const int PARTITION_NUMBER_SHIFT = 10;
18 
19  static const int HALFP_MASK = 0X1;
20  static const int HALFP_SHIFT = 8;
21 
22  static const int EOD_MASK = 0X1;
23  static const int EOD_SHIFT = 9;
24 
25  static const int CHAMBER_MASK = 0X3;
26  static const int CHAMBER_SHIFT = 14;
27 
28  static const int BITS_PER_PARTITION = 8;
29 
30  public:
31  // empty record
33 
34  // set with Data
35  RecordCD(int chamber, int partitionNumber, int eod, int halfP, const std::vector<int>& packedStrips);
36 
37  // set LB from raw
38  RecordCD(const Data& lbData) : DataRecord(lbData) {}
39 
40  // specialize given recort to this type
41  RecordCD(const DataRecord& rec) : DataRecord(rec) {}
42 
43  ~RecordCD() override {}
44 
45  static bool matchType(const DataRecord& record) {
46  return ((record.data() >> CD_TYPE_SHIFT) < CD_TYPE_LESSTHENFLAG);
47  }
48 
49  // more precisly - link board in link number
50  int lbInLink() const;
51 
52  int partitionNumber() const;
53  int eod() const;
54  int halfP() const;
55 
56  std::vector<int> packedStrips() const;
57  int partitionData() const;
58 
59  std::string print() const;
60  };
61 } // namespace rpcrawtodigi
62 #endif
int eod() const
Definition: RecordCD.cc:32
int lbInLink() const
Definition: RecordCD.cc:28
static const int HALFP_SHIFT
Definition: RecordCD.h:20
JetCorrectorParameters::Record record
Definition: classes.h:7
static const int HALFP_MASK
Definition: RecordCD.h:19
static const int CHAMBER_SHIFT
Definition: RecordCD.h:26
static const int EOD_MASK
Definition: RecordCD.h:22
~RecordCD() override
Definition: RecordCD.h:43
static bool matchType(const DataRecord &record)
Definition: RecordCD.h:45
int partitionData() const
Definition: RecordCD.cc:36
std::string print() const
Definition: RecordCD.cc:49
static const int CD_TYPE_SHIFT
Definition: RecordCD.h:11
const Data & data() const
Definition: DataRecord.h:31
static const int PARTITION_DATA_MASK
Definition: RecordCD.h:13
int halfP() const
Definition: RecordCD.cc:34
RecordCD(const DataRecord &rec)
Definition: RecordCD.h:41
static const int CHAMBER_MASK
Definition: RecordCD.h:25
int partitionNumber() const
Definition: RecordCD.cc:30
RecordCD(const Data &lbData)
Definition: RecordCD.h:38
static const int PARTITION_DATA_SHIFT
Definition: RecordCD.h:14
std::vector< int > packedStrips() const
Definition: RecordCD.cc:38
static const int PARTITION_NUMBER_SHIFT
Definition: RecordCD.h:17
static const int PARTITION_NUMBER_MASK
Definition: RecordCD.h:16
static const int EOD_SHIFT
Definition: RecordCD.h:23
static const int BITS_PER_PARTITION
Definition: RecordCD.h:28
static const int CD_TYPE_LESSTHENFLAG
Definition: RecordCD.h:10