58 me->
Fill(nodeNumber, 1);
59 for (
unsigned int i = 0;
i < 16;
i++)
61 if ((errorStat >>
i) & 0
x1)
63 me->
Fill(nodeNumber,
i + 2);
69 me->
Fill(nodeNumber, 0);
73 bool eventDenied =
false;
74 if (((uint32_t) errorStat &
config->getDDU_CHECK_MASK()) > 0)
79 const uint16_t *
tmp =
reinterpret_cast<const uint16_t *
>(
data);
80 const uint16_t tmpSize = dataSize /
sizeof(short);
89 if (
config->getBINCHECKER_OUTPUT())
102 if (binChecker.
check(tmp, tmpSize) < 0)
106 const uint16_t dduTrailer[4] = { 0x8000, 0x8000, 0xFFFF, 0x8000 };
107 const uint16_t *tmp = dduTrailer;
108 binChecker.
check(tmp, uint32_t(4));
125 if (
config->getPROCESS_DDU())
155 LOG_WARN <<
"No product: " << inputTag <<
" in stream";
159 bCSCEventCounted =
false;
160 size_t eventSize = 0;
165 int nDDUs_out_of_sync = 0;
166 int nDDUs_with_CSC_data_out_of_sync = 0;
167 bool fGlobal_DCC_DDU_L1A_mismatch =
false;
168 bool fGlobal_DCC_DDU_L1A_mismatch_with_CSC_data =
false;
172 std::vector<unsigned int> cscFEDids;
177 cscFEDids.push_back(
id);
183 cscFEDids.push_back(
id);
187 for (
unsigned int i=0;
i<cscFEDids.size();
i++)
189 unsigned int id = cscFEDids[
i];
196 if (fedData.
size() >= 32)
199 eventSize += fedData.
size();
202 if (!bCSCEventCounted)
205 bCSCEventCounted =
true;
218 const uint16_t *data = (uint16_t *) fedData.
data();
219 const size_t dataSize = fedData.
size() / 2;
220 const short unsigned int* udata = (
short unsigned int*) fedData.
data();
236 if (
config->getBINCHECKER_OUTPUT())
252 if (binChecker.
check(data, dataSize) >= 0)
269 if (
config->getPROCESS_DDU())
272 CSCDDUEventData dduData(const_cast<short unsigned int*>(udata), &binChecker);
282 if (binChecker.
check(data, dataSize) < 0)
300 uint32_t errs = binChecker.
errors();
304 for (
int i = 0;
i < 29;
i++)
306 if ((errs >>
i) & 0
x1 )
328 if (
config->getPROCESS_DDU())
331 CSCDCCEventData dccData(const_cast<short unsigned int*>(udata), &binChecker);
332 const std::vector<CSCDDUEventData> & dduData = dccData.
dduData();
335 bool fDCC_DDU_L1A_mismatch =
false;
336 bool fDCC_DDU_L1A_mismatch_with_CSC_data =
false;
338 for (
int ddu = 0; ddu < (
int)dduData.size(); ddu++)
340 if (DCC_L1A != dduData[ddu].
header().lvl1num())
342 fDCC_DDU_L1A_mismatch =
true;
343 fGlobal_DCC_DDU_L1A_mismatch =
true;
347 if (dduData[ddu].sizeInWords() > 24)
349 fDCC_DDU_L1A_mismatch_with_CSC_data =
true;
350 fGlobal_DCC_DDU_L1A_mismatch_with_CSC_data =
true;
351 nDDUs_with_CSC_data_out_of_sync++;
366 if (fDCC_DDU_L1A_mismatch_with_CSC_data
389 mo->
Fill(nDDUs_with_CSC_data_out_of_sync);
394 if (fGlobal_DCC_DDU_L1A_mismatch) mo->
Fill(1);
395 if (fGlobal_DCC_DDU_L1A_mismatch_with_CSC_data) mo->
Fill(2);
void crcCFEB(bool enable)
uint32_t cntCFEBs
Total Number of DMBs per event from DDU Header DAV.
void preProcessEvent()
Common Local and Global DQM function to be called before processing Event.
void modeDDU(bool enable)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
virtual void Fill(float x)=0
Monitoring Object interface used to cover Root object and provide common interface to EventProcessor ...
dispatcher processEvent(e, inputTag, standby)
const std::vector< CSCDDUEventData > & dduData() const
accessor to dduData
ExaminerStatusType errors(void) const
void crcALCT(bool enable)
size_t size() const
Lenght of the data buffer in bytes.
ExaminerStatusType warnings(void) const
uint32_t cntTMBs
Total Number of ALCTs per event from DMB DAV.
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
CSCDCCHeader dccHeader() const
std::map< CSCIdType, ExaminerStatusType > errorsDetailed(void) const
uint32_t cntALCTs
Total Number of CFEBs per event from DMB DAV.
void processDDU(const CSCDDUEventData &data, const CSCDCCExaminer &binChecker)
Process DDU output and fill MOs.
bool processExaminer(const CSCDCCExaminer &binChecker)
std::map< CSCIdType, ExaminerStatusType > statusDetailed(void) const
ExaminerMaskType getMask() const
int32_t check(const uint16_t *&buffer, int32_t length)
std::vector< std::vector< double > > tmp
const bool getFEDHisto(const HistoId &histo, const HwId &fedID, MonitorObject *&me)
Get FED Level Monitoring Object.
std::map< CSCIdType, ExaminerStatusType > payloadDetailed(void) const
char data[epos_bytes_allocation]
edm::EDGetTokenT< FEDRawDataCollection > frdtoken
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
std::map< DDUIdType, ExaminerStatusType > errorsDetailedDDU(void) const
bool EmuEventDisplayWasReset
const bool getEMUHisto(const HistoId &histo, MonitorObject *&me)
Get EMU (Top Level) Monitoring Object.
void setMask(ExaminerMaskType mask)