File indexing completed on 2024-04-06 12:10:47
0001 #ifndef EventFilter_L1TRawToDigi_Omtf_MuonDataWord64_H
0002 #define EventFilter_L1TRawToDigi_Omtf_MuonDataWord64_H
0003
0004 #include <iostream>
0005 #include "DataFormats/L1TMuon/interface/OMTF/OmtfDataWord64.h"
0006
0007 namespace omtf {
0008 class MuonDataWord64 {
0009 public:
0010 MuonDataWord64(Word64 data = 0) : rawData(data) {}
0011 unsigned int weight_lowBits() const { return weight_; }
0012 unsigned int layers() const { return layers_; }
0013 unsigned int ch() const { return ch_; }
0014 unsigned int vch() const { return vch_; }
0015 int phi() const { return phi_; }
0016 int eta() const { return eta_; }
0017 unsigned int pT() const { return pT_; }
0018 unsigned int quality() const { return quality_; }
0019 unsigned int bxNum() const { return bxNum_; }
0020 unsigned int type() const { return type_; }
0021 friend std::ostream &operator<<(std::ostream &out, const MuonDataWord64 &o);
0022
0023 private:
0024 union {
0025 uint64_t rawData;
0026 struct {
0027 uint64_t pT_ : 9;
0028 uint64_t quality_ : 4;
0029 int64_t eta_ : 9;
0030 uint64_t empty_ : 1;
0031 int64_t phi_ : 8;
0032 uint64_t bc0_ : 1;
0033 uint64_t ch_ : 1;
0034 uint64_t vch_ : 1;
0035 uint64_t layers_ : 18;
0036 uint64_t weight_ : 5;
0037 uint64_t bxNum_ : 3;
0038 uint64_t type_ : 4;
0039 };
0040 };
0041 };
0042
0043 }
0044 #endif