32 : currentFED(fedId), readoutMapping(r)
40 uint32_t rawDetId,
const RPCDigi & digi,
int trigger_BX)
const 42 std::vector<EventRecords>
result;
44 LogTrace(
"") <<
" DIGI; det: " << rawDetId<<
", strip: "<<digi.
strip()<<
", bx: "<<digi.
bx();
45 int stripInDU = digi.
strip();
48 typedef std::vector< std::pair< LinkBoardElectronicIndex, LinkBoardPackedStrip> > RawDataFrames;
52 for (RawDataFrames::const_iterator ir = rawDataFrames.begin(); ir != rawDataFrames.end(); ir++) {
60 <<
" dccId= "<<eleIndex.
dccId 66 int current_BX = trigger_BX+digi.
bx();
79 int partitionNumber = packedStrip/8;
80 RecordCD cdr(lbInLink, partitionNumber, eod, halfP, vector<int>(1,packedStrip) );
82 result.push_back(
EventRecords(trigger_BX, bxr, lbr, cdr) );
95 int currentRMB =
event.recordSLD().rmb();
102 eleIndex.
lbNumInLink =
event.recordCD().lbInLink();
112 if (debug)
LogDebug(
"")<<
" ** PROBLEM ** Invalid Linkboard location, skip CD event, " 113 <<
"dccId: "<<eleIndex.
dccId 123 std::vector<int> packStrips =
event.recordCD().packedStrips();
124 if (packStrips.empty()) {
125 error =
ReadoutError(eleIndex,ReadoutError::EmptyPackedStrips);
130 for(std::vector<int>::iterator is = packStrips.begin(); is != packStrips.end(); ++is) {
135 uint32_t rawDetId = duFrame.first;
136 int geomStrip = duFrame.second;
138 if (debug)
LogTrace(
"") <<
" ** PROBLEM ** no rawDetId, skip at least part of CD data";
139 error =
ReadoutError(eleIndex,ReadoutError::InvalidDetId);
144 if(debug)
LogTrace(
"") <<
" ** PROBLEM ** no strip found";
145 error =
ReadoutError(eleIndex,ReadoutError::InvalidStrip);
156 LogTrace(
"")<<
" DIGI; det: "<<rawDetId<<
", strip: "<<digi.strip()<<
", bx: "<<digi.bx();
158 if (prod) prod->insertDigi(
RPCDetId(rawDetId),digi);
static MessageDrop * instance()
std::pair< uint32_t, int > StripInDetUnit
first member is DetUnit ID, second strip in DetUnit frame
int dataToTriggerDelay() const
ReadoutErrorType type() const
const RecordCD & recordCD() const
std::vector< std::pair< LinkBoardElectronicIndex, int > > ProdItem
virtual StripInDetUnit detUnitFrame(const LinkBoardSpec &location, const LinkBoardPackedStrip &packedStrip) const
convert strip location as in raw data (LB and LBchannel) to detUnit frame
virtual const LinkBoardSpec * location(const LinkBoardElectronicIndex &ele) const
conversion between electronic and detector indexing
void addReadoutError(int fedId, const rpcrawtodigi::ReadoutError &error, int weight=1)
std::vector< std::pair< LinkBoardElectronicIndex, LinkBoardPackedStrip > > rawDataFrame(const StripInDetUnit &duFrame) const
connection "paths" that lead from one digi to one strip