CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
10 private:
11  static const int CD_TYPE_LESSTHENFLAG = 0x3;
12  static const int CD_TYPE_SHIFT= 14;
13 
14  static const int PARTITION_DATA_MASK = 0XFF;
15  static const int PARTITION_DATA_SHIFT =0;
16 
17  static const int PARTITION_NUMBER_MASK = 0XF;
18  static const int PARTITION_NUMBER_SHIFT =10;
19 
20  static const int HALFP_MASK = 0X1;
21  static const int HALFP_SHIFT =8;
22 
23  static const int EOD_MASK = 0X1;
24  static const int EOD_SHIFT =9;
25 
26  static const int CHAMBER_MASK = 0X3;
27  static const int CHAMBER_SHIFT =14;
28 
29  static const int BITS_PER_PARTITION=8;
30 
31 public:
32 
33  // empty record
34  RecordCD() : DataRecord() { }
35 
36  // set with Data
37  RecordCD(int chamber, int partitionNumber, int eod, int halfP,
38  const std::vector<int> & packedStrips);
39 
40  // set LB from raw
41  RecordCD(const Data & lbData) : DataRecord(lbData) {}
42 
43  // specialize given recort to this type
44  RecordCD(const DataRecord & rec) : DataRecord(rec) {}
45 
46  virtual ~RecordCD() {}
47 
48  static bool matchType(const DataRecord & record) {
49  return ( (record.data() >> CD_TYPE_SHIFT) < CD_TYPE_LESSTHENFLAG);
50  }
51 
52  // more precisly - link board in link number
53  int lbInLink() const;
54 
55  int partitionNumber() const;
56  int eod() const;
57  int halfP() const;
58 
59  std::vector<int> packedStrips() const;
60  int partitionData() const;
61 
62  std::string print() const;
63 };
64 }
65 #endif
int eod() const
Definition: RecordCD.cc:39
int lbInLink() const
Definition: RecordCD.cc:29
static const int HALFP_SHIFT
Definition: RecordCD.h:21
JetCorrectorParameters::Record record
Definition: classes.h:7
static const int HALFP_MASK
Definition: RecordCD.h:20
static const int CHAMBER_SHIFT
Definition: RecordCD.h:27
static const int EOD_MASK
Definition: RecordCD.h:23
static bool matchType(const DataRecord &record)
Definition: RecordCD.h:48
int partitionData() const
Definition: RecordCD.cc:49
std::string print() const
Definition: RecordCD.cc:65
static const int CD_TYPE_SHIFT
Definition: RecordCD.h:12
const Data & data() const
Definition: DataRecord.h:32
static const int PARTITION_DATA_MASK
Definition: RecordCD.h:14
int halfP() const
Definition: RecordCD.cc:44
RecordCD(const DataRecord &rec)
Definition: RecordCD.h:44
static const int CHAMBER_MASK
Definition: RecordCD.h:26
int partitionNumber() const
Definition: RecordCD.cc:34
RecordCD(const Data &lbData)
Definition: RecordCD.h:41
static const int PARTITION_DATA_SHIFT
Definition: RecordCD.h:15
virtual ~RecordCD()
Definition: RecordCD.h:46
std::vector< int > packedStrips() const
Definition: RecordCD.cc:54
static const int PARTITION_NUMBER_SHIFT
Definition: RecordCD.h:18
static const int PARTITION_NUMBER_MASK
Definition: RecordCD.h:17
static const int EOD_SHIFT
Definition: RecordCD.h:24
static const int BITS_PER_PARTITION
Definition: RecordCD.h:29
static const int CD_TYPE_LESSTHENFLAG
Definition: RecordCD.h:11