26 : ntbins_(ntbins), size_( 0 )
29 for(
int i = 1;
i < 257; ++
i) {
35 int tbin = ((
i-1)%14)/2;
51 LogTrace (
"CSCRPCData|CSCRawToDigi") <<
"CSCRPCData.Print";
56 for(
int linePair = 0; linePair < ((
size_-2)/2); ++linePair) {
58 int pos = linePair*2 + 1;
62 int bxnnew = ((
theData[pos+1] >> 8) & 0x7 );
65 int tbin = (
theData[pos] >> 8) & 0xf;
68 LogTrace (
"CSCRPCData|CSCRawToDigi") <<
" RPC=" << rpc <<
" Tbin=" <<tbin <<
" BXN=" << bxn;
75 for(
int linePair = 0; linePair < ((
size_-2)/2); ++linePair) {
77 int pos = linePair*2 + 1;
81 int bxnnew = ((
theData[pos+1] >> 8) & 0x7 ) ;
87 result.push_back(bxnnew);
88 result.push_back(rpc);
96 std::vector<CSCRPCDigi>
result;
100 for(
int linePair = 0; linePair < ((
size_-2)/2); ++linePair) {
102 int pos = linePair*2 + 1;
106 LogTrace(
"CSCRPCData|CSCRawToDigi") <<
"+++ CSCRPCData " << std::hex <<
theData[pos]
109 int pad = (theData[pos] & 0xff) + ((theData[pos+1] & 0xff) << 8);
112 bxnnew = ((theData[pos+1] >> 8) & 0x7 ) ;
115 if ( linePair == 0 ) bxnold = bxnnew;
116 if ( bxnnew - bxnold > 1 )
117 LogTrace(
"CSCRPCData|CSCRawToDigi") <<
"+++ CSCRPCData warning: RPC BXN is incrementing by more than 1 clock cycle";
121 if (
debug)
LogTrace(
"CSCRPCData|CSCRawToDigi") <<
"+++ CSCRPCData Found a PAD =" 122 << std::hex << pad <<
" " << theData[pos]
123 <<
" + " << theData[pos+1];
124 int rpc = (theData[pos] >> 12) & 0x7;
125 int tbin = (theData[pos] >> 8) & 0xf;
128 for(
int i = 0;
i < 16; ++
i) {
std::vector< CSCRPCDigi > digis() const
static std::atomic< bool > debug
std::vector< int > BXN() const
CSCRPCData(int ntbins=7)
default constructor
unsigned short theData[2 *4 *32+2]