19 #include <boost/dynamic_bitset.hpp>
30 CSCTMBData(
int firmwareVersion,
int firmwareRevision,
int ncfebs=5);
61 boost::dynamic_bitset<>
pack();
64 std::bitset<22>
calCRC22(
const std::vector< std::bitset<16> >& datain);
65 std::bitset<22>
nextCRC22_D16(
const std::bitset<16>&
D,
const std::bitset<22>&
C);
bool hasTMBMiniScope() const
check this before using TMB mini scope
CSCTMBTrailer * tmbTrailer()
CSCTMBTrailer theTMBTrailer
static void selfTest()
tests packing
unsigned short * theOriginalBuffer
short unsigned int CWordCnt() const
boost::dynamic_bitset pack()
not const because it sets size int TMBTrailer
bool theBlockedCFEBIsPresent
const unsigned short size() const
std::bitset< 22 > nextCRC22_D16(const std::bitset< 16 > &D, const std::bitset< 22 > &C)
bool theTMBMiniScopeIsPresent
bool hasTMBBlockedCFEB() const
check this before TMB Block CFEB
CSCTMBBlockedCFEB & tmbBlockedCFEB() const
bool hasTMBScope() const
check this before using TMB Scope
std::bitset< 22 > calCRC22(const std::vector< std::bitset< 16 > > &datain)
unsigned int crc22() const
static void setDebug(const bool value)
CSCTMBHeader theTMBHeader
static std::atomic< bool > debug
CSCTMBBlockedCFEB * theTMBBlockedCFEB
CSCTMBScope & tmbScope() const
CSCTMBMiniScope * theTMBMiniScope
DecomposeProduct< arg, typename Div::arg > D
bool theTMBScopeIsPresent
The TMB scope is not present in most of data hence its dynamic.
CSCTMBScope * theTMBScope
CSCTMBHeader * tmbHeader()
char data[epos_bytes_allocation]
bool hasRPC() const
check this before using RPC
bool checkSize() const
sees if the size adds up to the word count
int UnpackTMB(unsigned short *buf)
CSCTMBMiniScope & tmbMiniScope() const