File indexing completed on 2024-04-06 12:10:57
0001 #ifndef EventFilter_RPCRawToDigi_RPCMP7Record_icc
0002 #define EventFilter_RPCRawToDigi_RPCMP7Record_icc
0003
0004 #include "EventFilter/RPCRawToDigi/interface/RPCMP7Record.h"
0005
0006 namespace rpcmp7 {
0007
0008 inline void Header::reset() {
0009 record_[0] = 0x0;
0010 record_[1] = (std::uint64_t(l1a_type_) << event_type_offset_);
0011 }
0012
0013 inline unsigned int Header::getEventType() const { return (record_[1] & event_type_mask_) >> event_type_offset_; }
0014
0015 inline void Header::setEventType(unsigned int event_type) {
0016 record_[1] &= ~event_type_mask_;
0017 record_[1] |= (((std::uint64_t)(event_type) << event_type_offset_) & event_type_mask_);
0018 }
0019
0020 inline void SubHeader::set(std::uint64_t const record) { record_ = record; }
0021
0022 inline void SubHeader::reset() { record_ = 0x0; }
0023
0024 inline std::uint64_t const& SubHeader::getRecord() const { return record_; }
0025
0026 inline unsigned int SubHeader::getAlgoVersion() const { return ((record_ & algo_rev_mask_) >> algo_rev_offset_); }
0027
0028 inline unsigned int SubHeader::getFirmwareVersion() const { return ((record_ & fw_rev_mask_) >> fw_rev_offset_); }
0029
0030 inline void SubHeader::setAlgoVersion(unsigned int algo_rev) {
0031 record_ &= ~algo_rev_mask_;
0032 record_ |= (((std::uint64_t)(algo_rev) << algo_rev_offset_) & algo_rev_mask_);
0033 }
0034
0035 inline void SubHeader::setFirmwareVersion(unsigned int fw_rev) {
0036 record_ &= ~fw_rev_mask_;
0037 record_ |= (((std::uint64_t)(fw_rev) << fw_rev_offset_) & fw_rev_mask_);
0038 }
0039
0040 inline void BlockHeader::set(std::uint32_t const record) { record_ = record; }
0041
0042 inline void BlockHeader::reset() { record_ = 0x0; }
0043
0044 inline std::uint32_t const& BlockHeader::getRecord() const { return record_; }
0045
0046 inline unsigned int BlockHeader::getId() const { return (record_ & id_mask_) >> id_offset_; }
0047
0048 inline unsigned int BlockHeader::getLength() const { return (record_ & length_mask_) >> length_offset_; }
0049
0050 inline unsigned int BlockHeader::getCaptionId() const { return (record_ & caption_id_mask_) >> caption_id_offset_; }
0051
0052 inline bool BlockHeader::hasZeroSuppressionPerBX() const { return ((record_ & zs_per_bx_mask_) ? true : false); }
0053
0054 inline bool BlockHeader::isZeroSuppressed() const { return ((record_ & is_zs_mask_) ? true : false); }
0055
0056 inline bool BlockHeader::isZeroSuppressionInverted() const {
0057 return (hasZeroSuppressionPerBX() && isZeroSuppressed());
0058 }
0059
0060 inline void BlockHeader::setId(unsigned int id) {
0061 record_ &= ~id_mask_;
0062 record_ |= (((std::uint32_t)(id) << id_offset_) & id_mask_);
0063 }
0064
0065 inline void BlockHeader::setLength(unsigned int length) {
0066 record_ &= ~length_mask_;
0067 record_ |= (((std::uint32_t)(length) << length_offset_) & length_mask_);
0068 }
0069
0070 inline void BlockHeader::setCaptionId(unsigned int caption_id) {
0071 record_ &= ~caption_id_mask_;
0072 record_ |= (((std::uint32_t)(caption_id) << caption_id_offset_) & caption_id_mask_);
0073 }
0074
0075 inline void BlockHeader::setZeroSuppressionPerBX(bool zs_per_bx) {
0076 if (zs_per_bx)
0077 record_ |= zs_per_bx_mask_;
0078 else
0079 record_ &= ~(zs_per_bx_mask_);
0080 }
0081
0082 inline void BlockHeader::setZeroSuppressed(bool is_zs) {
0083 if (is_zs)
0084 record_ |= is_zs_mask_;
0085 else
0086 record_ &= ~(is_zs_mask_);
0087 }
0088
0089 inline void BlockHeader::setZeroSuppressionInverted(bool zs_inverted) { setZeroSuppressed(zs_inverted); }
0090
0091 inline void BXHeader::set(std::uint32_t const record) { record_ = record; }
0092
0093 inline void BXHeader::reset() { record_ = 0x0; }
0094
0095 inline std::uint32_t const& BXHeader::getRecord() const { return record_; }
0096
0097 inline unsigned int BXHeader::getFirstWord() const { return (record_ & first_word_mask_) >> first_word_offset_; }
0098
0099 inline unsigned int BXHeader::getTotalLength() const {
0100 return (record_ & total_length_mask_) >> total_length_offset_;
0101 }
0102
0103 inline bool BXHeader::isZeroSuppressed() const { return ((record_ & is_zs_mask_) ? true : false); }
0104
0105 inline unsigned int BXHeader::getBXId() const { return getFirstWord() / 6; }
0106
0107 inline unsigned int BXHeader::getTotalBX() const { return getTotalLength() / 6; }
0108
0109 inline void BXHeader::setFirstWord(unsigned int first_word) {
0110 record_ &= ~first_word_mask_;
0111 record_ |= (((std::uint32_t)(first_word) << first_word_offset_) & first_word_mask_);
0112 }
0113
0114 inline void BXHeader::setTotalLength(unsigned int total_length) {
0115 record_ &= ~total_length_mask_;
0116 record_ |= (((std::uint32_t)(total_length) << total_length_offset_) & total_length_mask_);
0117 }
0118
0119 inline void BXHeader::setZeroSuppressed(bool is_zs) {
0120 if (is_zs)
0121 record_ |= is_zs_mask_;
0122 else
0123 record_ &= ~(is_zs_mask_);
0124 }
0125
0126 }
0127
0128 #endif