21 return me->getEntries();
29 std::vector<std::pair<uint16_t, uint16_t>>
ret;
31 TH2F* th2 =
me->getTH2F();
32 float entries = getProcessedEvents(
dqmStore);
34 entries = th2->GetBinContent(th2->GetMaximumBin());
35 for (uint16_t
i = 1;
i < th2->GetNbinsY() + 1; ++
i) {
36 for (uint16_t
j = 1;
j < th2->GetNbinsX() + 1; ++
j) {
37 if (th2->GetBinContent(
j,
i) >
cutoff * entries) {
39 <<
" [SiStripBadModuleFedErrService::getFedBadChannelList] :: FedId & Channel "
40 << th2->GetYaxis()->GetBinLowEdge(
i) <<
" " << th2->GetXaxis()->GetBinLowEdge(
j);
42 std::pair<uint16_t, uint16_t>(th2->GetYaxis()->GetBinLowEdge(
i), th2->GetXaxis()->GetBinLowEdge(
j)));
55 auto quality = std::make_unique<SiStripQuality>();
62 std::map<uint32_t, std::set<int>> detectorMap;
64 const uint16_t fId = elm.first;
65 const uint16_t fChan = elm.second / 2;
66 if ((fId == 9999) && (fChan == 9999))
73 for (
const auto& detElm : detectorMap) {
75 unsigned short firstBadStrip{0};
76 unsigned short fNconsecutiveBadStrips{0};
78 for (
const auto pair : detElm.second) {
79 if (last_pair == -1) {
80 firstBadStrip = pair * 128 * 2;
81 fNconsecutiveBadStrips = 128 * 2;
82 }
else if (pair - last_pair > 1) {
83 theSiStripVector.push_back(
quality->encode(firstBadStrip, fNconsecutiveBadStrips));
84 firstBadStrip = pair * 128 * 2;
85 fNconsecutiveBadStrips = 128 * 2;
87 fNconsecutiveBadStrips += 128 * 2;
91 unsigned int theBadStripRange =
quality->encode(firstBadStrip, fNconsecutiveBadStrips);
92 theSiStripVector.push_back(theBadStripRange);
95 <<
" SiStripBadModuleFedErrService::readBadComponentsFromFed "
96 <<
" detid " << detElm.first <<
" firstBadStrip " << firstBadStrip <<
" NconsecutiveBadStrips "
97 << fNconsecutiveBadStrips <<
" packed integer " << std::hex << theBadStripRange <<
std::dec;
101 <<
"[SiStripBadModuleFedErrService::readBadComponentsFromFed] detid already exists";