22 : ntbins_(ntbins),
size_( 0 )
25 for(
int i = 1;
i < 257; ++
i) {
31 int tbin = ((
i-1)%14)/2;
47 LogTrace (
"CSCRPCData|CSCRawToDigi") <<
"CSCRPCData.Print";
52 for(
int linePair = 0; linePair < ((
size_-2)/2); ++linePair) {
54 int pos = linePair*2 + 1;
58 int bxnnew = ((
theData[pos+1] >> 8) & 0x7 );
64 LogTrace (
"CSCRPCData|CSCRawToDigi") <<
" RPC=" << rpc <<
" Tbin=" <<tbin <<
" BXN=" << bxn;
71 for(
int linePair = 0; linePair < ((
size_-2)/2); ++linePair) {
73 int pos = linePair*2 + 1;
77 int bxnnew = ((
theData[pos+1] >> 8) & 0x7 ) ;
83 result.push_back(bxnnew);
84 result.push_back(rpc);
92 std::vector<CSCRPCDigi>
result;
96 for(
int linePair = 0; linePair < ((
size_-2)/2); ++linePair) {
98 int pos = linePair*2 + 1;
105 int pad = (theData[
pos] & 0xff) + ((theData[pos+1] & 0xff) << 8);
108 bxnnew = ((theData[pos+1] >> 8) & 0x7 ) ;
111 if ( linePair == 0 ) bxnold = bxnnew;
112 if ( bxnnew - bxnold > 1 )
113 LogTrace(
"CSCRPCData|CSCRawToDigi") <<
"+++ CSCRPCData warning: RPC BXN is incrementing by more than 1 clock cycle";
117 if (
debug)
LogTrace(
"CSCRPCData|CSCRawToDigi") <<
"+++ CSCRPCData Found a PAD ="
118 << std::hex << pad <<
" " << theData[
pos]
119 <<
" + " << theData[pos+1];
120 int rpc = (theData[
pos] >> 12) & 0x7;
121 int tbin = (theData[
pos] >> 8) & 0xf;
124 for(
int i = 0;
i < 16; ++
i) {
std::vector< CSCRPCDigi > digis() const
std::vector< int > BXN() const
CSCRPCData(int ntbins=7)
default constructor
unsigned short theData[2 *4 *32+2]