39 if(payload.size() != 8) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Payload size in 'SP Output Data Record' is different than expected"; }
42 if(
GetHexBits(payload[0], 16, 31) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Payload[0] has more than 16 bits in 'SP Output Data Record'"; }
43 if(
GetHexBits(payload[1], 16, 31) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Payload[1] has more than 16 bits in 'SP Output Data Record'"; }
44 if(
GetHexBits(payload[2], 16, 31) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Payload[2] has more than 16 bits in 'SP Output Data Record'"; }
45 if(
GetHexBits(payload[3], 16, 31) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Payload[3] has more than 16 bits in 'SP Output Data Record'"; }
46 if(
GetHexBits(payload[4], 16, 31) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Payload[4] has more than 16 bits in 'SP Output Data Record'"; }
47 if(
GetHexBits(payload[5], 16, 31) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Payload[5] has more than 16 bits in 'SP Output Data Record'"; }
48 if(
GetHexBits(payload[6], 16, 31) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Payload[6] has more than 16 bits in 'SP Output Data Record'"; }
49 if(
GetHexBits(payload[7], 16, 31) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Payload[7] has more than 16 bits in 'SP Output Data Record'"; }
51 uint16_t SP1a = payload[0];
52 uint16_t SP1b = payload[1];
53 uint16_t SP1c = payload[2];
54 uint16_t SP1d = payload[3];
55 uint16_t SP2a = payload[4];
56 uint16_t SP2b = payload[5];
57 uint16_t SP2c = payload[6];
58 uint16_t SP2d = payload[7];
62 if(
GetHexBits(SP1a, 15, 15) != 1) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Format identifier bits in SP1a are incorrect"; }
63 if(
GetHexBits(SP1b, 15, 15) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Format identifier bits in SP1b are incorrect"; }
64 if(
GetHexBits(SP1b, 8, 11) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Format identifier bits in SP1b are incorrect"; }
65 if(
GetHexBits(SP1c, 15, 15) != 1) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Format identifier bits in SP1c are incorrect"; }
66 if(
GetHexBits(SP1d, 15, 15) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Format identifier bits in SP1d are incorrect"; }
67 if(
GetHexBits(SP2a, 15, 15) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Format identifier bits in SP2a are incorrect"; }
68 if(
GetHexBits(SP2b, 15, 15) != 1) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Format identifier bits in SP2b are incorrect"; }
69 if(
GetHexBits(SP2c, 15, 15) != 1) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Format identifier bits in SP2c are incorrect"; }
70 if(
GetHexBits(SP2d, 15, 15) != 0) { errors += 1;
edm::LogError(
"L1T|EMTF") <<
"Format identifier bits in SP2d are incorrect"; }
89 uint16_t SP1a = payload[0];
90 uint16_t SP1b = payload[1];
91 uint16_t SP1c = payload[2];
92 uint16_t SP1d = payload[3];
93 uint16_t SP2a = payload[4];
94 uint16_t SP2b = payload[5];
95 uint16_t SP2c = payload[6];
96 uint16_t SP2d = payload[7];
102 int iOut = res->size() - 1;
159 (res->at(iOut)).push_SP(SP_);
void set_me3_trk_stub_num(int bits)
const float Phi_local() const
void set_me1_trk_stub_num(int bits)
void setHwPhi(int bits)
Set compressed relative phi as transmitted by hardware LSB = 2*pi/576 (8 bits)
void set_pt_lut_address(int bits)
void set_phi_GMT_global(float loc, int sect)
virtual int checkFormat(const Block &block)
void set_me2_trk_stub_num(int bits)
void set_pt_int(int bits)
const int Format_Errors() const
std::vector< uint32_t > payload() const
void set_phi_GMT_int(int bits)
#define DEFINE_L1T_UNPACKER(type)
void set_me4_TBIN(int bits)
void set_phi_local_int(int bits)
void set_me2_csc_id(int bits)
void set_me4_csc_id(int bits)
int TwosCompl(int nBits, int bits)
const float Phi_GMT() const
std::vector< EMTFOutput > EMTFOutputCollection
void set_me3_TBIN(int bits)
void set_me4_trk_stub_num(int bits)
void set_me2_TBIN(int bits)
void setHwQual(int bits)
Set compressed quality code as transmitted by hardware (4 bits)
void setHwPt(int bits)
Set compressed pT as transmitted by hardware LSB = 0.5 (9 bits)
void set_eta_GMT_int(int bits)
void setHwEta(int bits)
Set compressed eta as transmitted by hardware LSB = 0.010875 (9 bits)
void set_quality(int bits)
virtual bool unpack(const Block &block, UnpackerCollections *coll) override
void set_TBIN_num(int bits)
void setBXRange(int bxFirst, int bxLast)
void set_me3_csc_id(int bits)
void set_me1_csc_id(int bits)
uint16_t GetHexBits(uint16_t word, uint16_t lowBit, uint16_t highBit)
void set_me1_subsector(int bits)
void set_me1_TBIN(int bits)
void set_phi_global(float loc, int sect)
void push_back(int bx, T object)