44 if( !checktrigger(iEvent,iSetup,DCS) )
return;
50 for (
auto it = input->begin(); it != input->end(); ++it) {
51 for (
auto& siPixelRawDataError : *it) {
52 int fed = siPixelRawDataError.getFedId();
53 int type = siPixelRawDataError.getType();
54 DetId id = it->detId();
57 const uint32_t LINK_bits = 6;
58 const uint32_t LINK_shift = 26;
59 const uint64_t LINK_mask = (1 << LINK_bits) - 1;
64 if (type == 32 || type == 33 || type == 34) {
65 errorWord = siPixelRawDataError.getWord64();
67 errorWord = siPixelRawDataError.getWord32();
70 int32_t chanNmbr = (errorWord >> LINK_shift) & LINK_mask;
72 if (type == 29) chanNmbr = -1;
74 uint32_t error_data = errorWord & 0xFF;
77 for (uint32_t
i = 0;
i < 8;
i++) {
78 if (error_data & (1 <<
i))
histo[FIFOFULL].
fill(
i,
id, &iEvent, fed, chanNmbr);
83 uint32_t statemachine_state = errorWord >> 8 & 0xF;
84 const uint32_t tbm_types[16] = {
91 histo[TBMTYPE].fill(tbm_types[statemachine_state],
id, &iEvent, fed, chanNmbr);
93 for (uint32_t
i = 0;
i < 8;
i++) {
94 if (error_data & (1 <<
i))
histo[TBMMESSAGE].fill(
i,
id, &iEvent, fed, chanNmbr);
103 histo[NERRORS].fill(
id, &iEvent, fed, chanNmbr);
104 histo[TYPE_NERRORS].fill(type,
id, &iEvent, fed, chanNmbr);
108 histo[NERRORS].executePerEventHarvesting(&iEvent);
T getParameter(std::string const &) const
virtual example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
static std::string const input
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override=0
unsigned long long uint64_t
std::vector< HistogramManager > histo