File indexing completed on 2024-09-07 04:35:54
0001
0002
0003 #ifndef __l1t_emtf_GEM_h__
0004 #define __l1t_emtf_GEM_h__
0005
0006 #include <vector>
0007 #include <cstdint>
0008
0009 namespace l1t {
0010 namespace emtf {
0011 class GEM {
0012 public:
0013 explicit GEM(const uint64_t dataword);
0014
0015 GEM()
0016 : pad(-99),
0017 partition(-99),
0018 cluster_size(-99),
0019 cluster_id(-99),
0020 link(-99),
0021 gem_bxn(-99),
0022 bc0(-99),
0023 tbin(-99),
0024 vp(-99),
0025 format_errors(0),
0026 dataword(-99) {}
0027
0028 virtual ~GEM() = default;
0029
0030 inline void set_pad(const int bits) { pad = bits; }
0031 inline void set_partition(const int bits) { partition = bits; }
0032 inline void set_cluster_size(const int bits) { cluster_size = bits; }
0033 inline void set_cluster_id(const int bits) { cluster_id = bits; }
0034 inline void set_link(const int bits) { link = bits; }
0035 inline void set_gem_bxn(const int bits) { gem_bxn = bits; }
0036 inline void set_bc0(const int bits) { bc0 = bits; }
0037 inline void set_tbin(const int bits) { tbin = bits; }
0038 inline void set_vp(const int bits) { vp = bits; }
0039 inline void add_format_error() { format_errors += 1; }
0040 inline void set_dataword(const uint64_t bits) { dataword = bits; }
0041
0042
0043 inline int Pad() const { return pad; }
0044
0045 inline int Partition() const { return partition; }
0046
0047 inline int ClusterSize() const { return cluster_size; }
0048
0049 inline int ClusterID() const { return cluster_id; }
0050
0051 inline int Link() const { return link; }
0052
0053 inline int GEM_BXN() const { return gem_bxn; }
0054
0055 inline int BC0() const { return bc0; }
0056
0057 inline int TBIN() const { return tbin; }
0058
0059 inline int VP() const { return vp; }
0060
0061 inline int Format_errors() const { return format_errors; }
0062
0063 inline uint64_t Dataword() const { return dataword; }
0064
0065 private:
0066 int pad;
0067 int partition;
0068 int cluster_size;
0069 int cluster_id;
0070 int link;
0071 int gem_bxn;
0072 int bc0;
0073 int tbin;
0074 int vp;
0075 int format_errors;
0076 uint64_t dataword;
0077
0078 };
0079
0080
0081 typedef std::vector<GEM> GEMCollection;
0082
0083 }
0084 }
0085
0086 #endif