diff --git a/DataFormats/FTLDigi/interface/BTLSample.h b/DataFormats/FTLDigi/interface/BTLSample.h index 0f97075ae64e6..ce306e70e35f6 100644 --- a/DataFormats/FTLDigi/interface/BTLSample.h +++ b/DataFormats/FTLDigi/interface/BTLSample.h @@ -9,80 +9,81 @@ @class BTLSample @short wrapper for a data word */ +namespace io_v1 { + class BTLSample { + public: + enum BTLSampleDataMasks { kToA2Mask = 0x3ff, kToAMask = 0x3ff, kDataMask = 0x3ff }; + enum BTLSampleDataShifts { kToA2Shift = 20, kToAShift = 10, kDataShift = 0 }; -class BTLSample { -public: - enum BTLSampleDataMasks { kToA2Mask = 0x3ff, kToAMask = 0x3ff, kDataMask = 0x3ff }; - enum BTLSampleDataShifts { kToA2Shift = 20, kToAShift = 10, kDataShift = 0 }; + enum BTLSampleFlagMasks { kThreshMask = 0x1, kModeMask = 0x1 }; + enum BTLSampleFlagShifts { kThreshShift = 1, kModeShift = 0 }; - enum BTLSampleFlagMasks { kThreshMask = 0x1, kModeMask = 0x1 }; - enum BTLSampleFlagShifts { kThreshShift = 1, kModeShift = 0 }; - - /** + /** @short CTOR */ - BTLSample() : value_(0), flag_(0), row_(0), col_(0) {} - BTLSample(uint32_t value, uint16_t flag, uint8_t row, uint8_t col) - : value_(value), flag_(flag), row_(row), col_(col) {} - BTLSample(const BTLSample& o) : value_(o.value_), flag_(o.flag_), row_(o.row_), col_(o.col_) {} - BTLSample& operator=(const BTLSample&) = default; + BTLSample() : value_(0), flag_(0), row_(0), col_(0) {} + BTLSample(uint32_t value, uint16_t flag, uint8_t row, uint8_t col) + : value_(value), flag_(flag), row_(row), col_(col) {} + BTLSample(const BTLSample& o) : value_(o.value_), flag_(o.flag_), row_(o.row_), col_(o.col_) {} + BTLSample& operator=(const BTLSample&) = default; - /** + /** @short setters */ - void setThreshold(bool thr) { setFlagWord(thr, kThreshMask, kThreshShift); } - void setMode(bool mode) { setFlagWord(mode, kModeMask, kModeShift); } - void setToA(uint16_t toa) { setDataWord(toa, kToAMask, kToAShift); } - void setToA2(uint16_t toa2) { setDataWord(toa2, kToA2Mask, kToA2Shift); } - void setData(uint16_t data) { setDataWord(data, kDataMask, kDataShift); } - void set(bool thr, bool mode, uint16_t toa2, uint16_t toa, uint16_t data, uint8_t row, uint8_t col) { - flag_ = (((uint16_t)thr & kThreshMask) << kThreshShift | ((uint16_t)mode & kModeMask) << kModeShift); + void setThreshold(bool thr) { setFlagWord(thr, kThreshMask, kThreshShift); } + void setMode(bool mode) { setFlagWord(mode, kModeMask, kModeShift); } + void setToA(uint16_t toa) { setDataWord(toa, kToAMask, kToAShift); } + void setToA2(uint16_t toa2) { setDataWord(toa2, kToA2Mask, kToA2Shift); } + void setData(uint16_t data) { setDataWord(data, kDataMask, kDataShift); } + void set(bool thr, bool mode, uint16_t toa2, uint16_t toa, uint16_t data, uint8_t row, uint8_t col) { + flag_ = (((uint16_t)thr & kThreshMask) << kThreshShift | ((uint16_t)mode & kModeMask) << kModeShift); - value_ = (((uint32_t)toa2 & kToA2Mask) << kToA2Shift | ((uint32_t)toa & kToAMask) << kToAShift | - ((uint32_t)data & kDataMask) << kDataShift); - row_ = row; - col_ = col; - } - void print(std::ostream& out = std::cout) { - out << "THR: " << threshold() << " Mode: " << mode() << " ToA2: " << toa2() << " ToA: " << toa() - << " Data: " << data() << " Row: " << (uint32_t)row() << " Column: " << (uint32_t)column() << " Raw Flag=0x" - << std::hex << raw_flag() << std::dec << " Raw Data=0x" << std::hex << raw_data() << std::dec << std::endl; - } + value_ = (((uint32_t)toa2 & kToA2Mask) << kToA2Shift | ((uint32_t)toa & kToAMask) << kToAShift | + ((uint32_t)data & kDataMask) << kDataShift); + row_ = row; + col_ = col; + } + void print(std::ostream& out = std::cout) { + out << "THR: " << threshold() << " Mode: " << mode() << " ToA2: " << toa2() << " ToA: " << toa() + << " Data: " << data() << " Row: " << (uint32_t)row() << " Column: " << (uint32_t)column() << " Raw Flag=0x" + << std::hex << raw_flag() << std::dec << " Raw Data=0x" << std::hex << raw_data() << std::dec << std::endl; + } - /** + /** @short getters */ - uint32_t raw_data() const { return value_; } - uint16_t raw_flag() const { return flag_; } - bool threshold() const { return ((flag_ >> kThreshShift) & kThreshMask); } - bool mode() const { return ((flag_ >> kModeShift) & kModeMask); } - uint32_t toa() const { return ((value_ >> kToAShift) & kToAMask); } - uint32_t toa2() const { return ((value_ >> kToA2Shift) & kToA2Mask); } - uint32_t data() const { return ((value_ >> kDataShift) & kDataMask); } - uint8_t row() const { return row_; } - uint8_t column() const { return col_; } + uint32_t raw_data() const { return value_; } + uint16_t raw_flag() const { return flag_; } + bool threshold() const { return ((flag_ >> kThreshShift) & kThreshMask); } + bool mode() const { return ((flag_ >> kModeShift) & kModeMask); } + uint32_t toa() const { return ((value_ >> kToAShift) & kToAMask); } + uint32_t toa2() const { return ((value_ >> kToA2Shift) & kToA2Mask); } + uint32_t data() const { return ((value_ >> kDataShift) & kDataMask); } + uint8_t row() const { return row_; } + uint8_t column() const { return col_; } -private: - /** + private: + /** @short wrapper to reset words at a given position */ - void setDataWord(uint32_t word, uint32_t mask, uint32_t pos) { - //clear required bits - value_ &= ~(mask << pos); - //now set the new value - value_ |= ((word & mask) << pos); - } - void setFlagWord(uint16_t word, uint16_t mask, uint16_t pos) { - //clear required bits - flag_ &= ~(mask << pos); - //now set the new value - flag_ |= ((word & mask) << pos); - } - - // bit-words for data and flags - uint32_t value_; - uint16_t flag_; - uint8_t row_, col_; -}; + void setDataWord(uint32_t word, uint32_t mask, uint32_t pos) { + //clear required bits + value_ &= ~(mask << pos); + //now set the new value + value_ |= ((word & mask) << pos); + } + void setFlagWord(uint16_t word, uint16_t mask, uint16_t pos) { + //clear required bits + flag_ &= ~(mask << pos); + //now set the new value + flag_ |= ((word & mask) << pos); + } + // bit-words for data and flags + uint32_t value_; + uint16_t flag_; + uint8_t row_, col_; + }; +} // namespace io_v1 +using BTLSample = io_v1::BTLSample; #endif diff --git a/DataFormats/FTLDigi/interface/ETLSample.h b/DataFormats/FTLDigi/interface/ETLSample.h index 849f43e91d497..0ab790ddb999c 100644 --- a/DataFormats/FTLDigi/interface/ETLSample.h +++ b/DataFormats/FTLDigi/interface/ETLSample.h @@ -9,93 +9,94 @@ @class ETLSample @short wrapper for a data word */ +namespace io_v1 { + class ETLSample { + public: + enum ETLSampleMasks { + kThreshMask = 0x1, + kModeMask = 0x1, + kColumnMask = 0x1f, + kRowMask = 0x3f, + kToAMask = 0x7ff, + kDataMask = 0xff, + kToTMask = 0x7ff + }; + enum ETLSampleShifts { + kThreshShift = 31, + kModeShift = 30, + kColumnShift = 25, + kRowShift = 19, + kToAShift = 8, + kDataShift = 0, + kToTShift = 0 + }; -class ETLSample { -public: - enum ETLSampleMasks { - kThreshMask = 0x1, - kModeMask = 0x1, - kColumnMask = 0x1f, - kRowMask = 0x3f, - kToAMask = 0x7ff, - kDataMask = 0xff, - kToTMask = 0x7ff - }; - enum ETLSampleShifts { - kThreshShift = 31, - kModeShift = 30, - kColumnShift = 25, - kRowShift = 19, - kToAShift = 8, - kDataShift = 0, - kToTShift = 0 - }; - - /** + /** @short CTOR */ - ETLSample() : value_(0), valueToT_(0) {} - ETLSample(uint32_t value) : value_(value), valueToT_(0) {} - ETLSample(uint32_t value, uint32_t valueToT) : value_(value), valueToT_(valueToT) {} - ETLSample(const ETLSample& o) : value_(o.value_), valueToT_(o.valueToT_) {} - ETLSample& operator=(const ETLSample&) = default; + ETLSample() : value_(0), valueToT_(0) {} + ETLSample(uint32_t value) : value_(value), valueToT_(0) {} + ETLSample(uint32_t value, uint32_t valueToT) : value_(value), valueToT_(valueToT) {} + ETLSample(const ETLSample& o) : value_(o.value_), valueToT_(o.valueToT_) {} + ETLSample& operator=(const ETLSample&) = default; - /** + /** @short setters */ - void setThreshold(bool thr) { setWord(thr, kThreshMask, kThreshShift); } - void setMode(bool mode) { setWord(mode, kModeMask, kModeShift); } - void setColumn(uint8_t col) { setWord(col, kColumnMask, kColumnShift); } - void setRow(uint8_t row) { setWord(row, kRowMask, kRowShift); } - void setToA(uint16_t toa) { setWord(toa, kToAMask, kToAShift); } - void setToT(uint16_t tot) { setWordToT(tot, kToTMask, kToTShift); } - void setData(uint16_t data) { setWord(data, kDataMask, kDataShift); } - void set(bool thr, bool mode, uint16_t toa, uint16_t tot, uint16_t data, uint8_t row, uint8_t col) { - value_ = (((uint32_t)thr & kThreshMask) << kThreshShift | ((uint32_t)mode & kModeMask) << kModeShift | - ((uint32_t)col & kColumnMask) << kColumnShift | ((uint32_t)row & kRowMask) << kRowShift | - ((uint32_t)toa & kToAMask) << kToAShift | ((uint32_t)data & kDataMask) << kDataShift); - valueToT_ = ((uint32_t)tot & kToTMask) << kToTShift; - } - void print(std::ostream& out = std::cout) { - out << "(row,col) : (" << row() << ',' << column() << ") " - << "THR: " << threshold() << " Mode: " << mode() << " ToA: " << toa() << " ToT: " << tot() - << " Data: " << data() << " Raw=0x" << std::hex << raw() << std::dec << std::endl; - } + void setThreshold(bool thr) { setWord(thr, kThreshMask, kThreshShift); } + void setMode(bool mode) { setWord(mode, kModeMask, kModeShift); } + void setColumn(uint8_t col) { setWord(col, kColumnMask, kColumnShift); } + void setRow(uint8_t row) { setWord(row, kRowMask, kRowShift); } + void setToA(uint16_t toa) { setWord(toa, kToAMask, kToAShift); } + void setToT(uint16_t tot) { setWordToT(tot, kToTMask, kToTShift); } + void setData(uint16_t data) { setWord(data, kDataMask, kDataShift); } + void set(bool thr, bool mode, uint16_t toa, uint16_t tot, uint16_t data, uint8_t row, uint8_t col) { + value_ = (((uint32_t)thr & kThreshMask) << kThreshShift | ((uint32_t)mode & kModeMask) << kModeShift | + ((uint32_t)col & kColumnMask) << kColumnShift | ((uint32_t)row & kRowMask) << kRowShift | + ((uint32_t)toa & kToAMask) << kToAShift | ((uint32_t)data & kDataMask) << kDataShift); + valueToT_ = ((uint32_t)tot & kToTMask) << kToTShift; + } + void print(std::ostream& out = std::cout) { + out << "(row,col) : (" << row() << ',' << column() << ") " + << "THR: " << threshold() << " Mode: " << mode() << " ToA: " << toa() << " ToT: " << tot() + << " Data: " << data() << " Raw=0x" << std::hex << raw() << std::dec << std::endl; + } - /** + /** @short getters */ - uint32_t raw() const { return value_; } - bool threshold() const { return ((value_ >> kThreshShift) & kThreshMask); } - bool mode() const { return ((value_ >> kModeShift) & kModeMask); } - uint32_t column() const { return ((value_ >> kColumnShift) & kColumnMask); } - uint32_t row() const { return ((value_ >> kRowShift) & kRowMask); } - uint32_t toa() const { return ((value_ >> kToAShift) & kToAMask); } - uint32_t tot() const { return ((valueToT_ >> kToTShift) & kToTMask); } - uint32_t data() const { return ((value_ >> kDataShift) & kDataMask); } - uint32_t operator()() { return value_; } + uint32_t raw() const { return value_; } + bool threshold() const { return ((value_ >> kThreshShift) & kThreshMask); } + bool mode() const { return ((value_ >> kModeShift) & kModeMask); } + uint32_t column() const { return ((value_ >> kColumnShift) & kColumnMask); } + uint32_t row() const { return ((value_ >> kRowShift) & kRowMask); } + uint32_t toa() const { return ((value_ >> kToAShift) & kToAMask); } + uint32_t tot() const { return ((valueToT_ >> kToTShift) & kToTMask); } + uint32_t data() const { return ((value_ >> kDataShift) & kDataMask); } + uint32_t operator()() { return value_; } -private: - /** + private: + /** @short wrapper to reset words at a given position */ - void setWord(uint32_t word, uint32_t mask, uint32_t pos) { - //clear required bits - value_ &= ~(mask << pos); - //now set the new value - value_ |= ((word & mask) << pos); - } + void setWord(uint32_t word, uint32_t mask, uint32_t pos) { + //clear required bits + value_ &= ~(mask << pos); + //now set the new value + value_ |= ((word & mask) << pos); + } - void setWordToT(uint32_t word, uint32_t mask, uint32_t pos) { - //clear required bits - valueToT_ &= ~(mask << pos); - //now set the new value - valueToT_ |= ((word & mask) << pos); - } - - // a 32-bit word - uint32_t value_; - uint32_t valueToT_; -}; + void setWordToT(uint32_t word, uint32_t mask, uint32_t pos) { + //clear required bits + valueToT_ &= ~(mask << pos); + //now set the new value + valueToT_ |= ((word & mask) << pos); + } + // a 32-bit word + uint32_t value_; + uint32_t valueToT_; + }; +} // namespace io_v1 +using ETLSample = io_v1::ETLSample; #endif diff --git a/DataFormats/FTLDigi/src/classes_def.xml b/DataFormats/FTLDigi/src/classes_def.xml index 97670b805850c..70810da259bd7 100644 --- a/DataFormats/FTLDigi/src/classes_def.xml +++ b/DataFormats/FTLDigi/src/classes_def.xml @@ -5,13 +5,14 @@ - + + + - - - + + - +