17 int nBX, firstBX, lastBX;
30 LogDebug(
"L1T") <<
"nBX = " << nBX <<
" firstBX = " << firstBX <<
" lastBX = " << lastBX;
33 if ( block.
amc().getAMCNumber()%2 != 0 )
34 processor = block.
amc().getAMCNumber()/2;
36 processor = 6 + ( block.
amc().getAMCNumber()/2 -1);
39 for(
int ibx = firstBX; ibx <= lastBX; ibx++)
42 for(
unsigned int iw = 0; iw < block.
header().
getSize()/nBX; iw += 2)
44 uint32_t raw_first = payload[ip+(ibx+lastBX)*6];
46 uint32_t raw_secnd = payload[ip+(ibx+lastBX)*6];
50 LogDebug(
"L1T") <<
"Raw data is zero";
59 if ( muCand.
hwQual() != 0 )
61 if ( muCand.
hwPt() < 6 )
62 std::cout <<
"Output is: " << std::hex << raw_first <<
"\t" << raw_secnd <<
std::dec <<
"\tPt: " << muCand.
hwPt() <<
"\teta: " << muCand.
hwEta() <<
"\tphi: " << muCand.
hwPhi() <<
"\tQual: " << muCand.
hwQual() << std::endl <<
"Wheel is: " << (int) ((raw_secnd >> 20) & 0x3) << std::endl;
virtual bool unpack(const Block &block, UnpackerCollections *coll) override
void getBXRange(int nbx, int &first, int &last)
BlockHeader header() const
std::vector< uint32_t > payload() const
const int hwQual() const
Get quality code.
const int hwEta() const
Get compressed eta (returned int * 0.010875 = eta)
const int hwPhi() const
Get compressed local phi (returned int * 2*pi/576 = local phi in rad)
static void fillRegionalMuonCand(RegionalMuonCand &, uint32_t, uint32_t, int, tftype)
void setBXRange(int bxFirst, int bxLast)
const int hwPt() const
Get compressed pT (returned int * 0.5 = pT (GeV))
void amc(const amc::Header &h)
void push_back(int bx, T object)