33 LogDebug(
"SiStripDcsInfo") <<
"SiStripDcsInfo::Deleting SiStripDcsInfo ";
50 LogDebug(
"SiStripDcsInfo") <<
"SiStripDcsInfo:: Begining of Run";
59 runInfoRec->get(sumFED);
62 std::vector<int> FedsInIds = sumFED->
m_fed_in;
63 for (
unsigned int it = 0; it < FedsInIds.size(); ++it) {
64 int fedID = FedsInIds[it];
65 if (fedID >= siStripFedIdMin && fedID <= siStripFedIdMax)
82 LogDebug(
"SiStripDcsInfo") <<
"SiStripDcsInfo::beginLuminosityBlock";
89 subDetME.second.FaultyDetectors.clear();
96 LogDebug(
"SiStripDcsInfo") <<
"SiStripDcsInfo::endLuminosityBlock";
106 LogDebug(
"SiStripDcsInfo") <<
"SiStripDcsInfo::EndRun";
112 subDetME.second.FaultyDetectors.clear();
127 if (!strip_dir.empty())
137 if (!strip_dir.empty())
143 subDetME.DcsFractionME = dqm_store.
bookFloat(me_name);
158 LogDebug(
"SiStripDcsInfo") <<
"SiStripDcsInfo::readCabling : "
159 <<
" Change in Cache";
162 std::vector<uint32_t> SelectedDetIds;
164 LogDebug(
"SiStripDcsInfo") <<
" SiStripDcsInfo::readCabling : "
165 <<
" Total Detectors " << SelectedDetIds.size();
169 it->second.TotalDetectors = 0;
172 for (std::vector<uint32_t>::const_iterator idetid = SelectedDetIds.begin(); idetid != SelectedDetIds.end();
174 uint32_t detId = *idetid;
175 if (detId == 0 || detId == 0xFFFFFFFF)
182 iPos->second.TotalDetectors++;
197 std::vector<uint32_t> FaultyDetIds;
199 LogDebug(
"SiStripDcsInfo") <<
" SiStripDcsInfo::readStatus : "
200 <<
" Faulty Detectors " << FaultyDetIds.size();
202 for (std::vector<uint32_t>::const_iterator ihvoff = FaultyDetIds.begin(); ihvoff != FaultyDetIds.end(); ++ihvoff) {
203 uint32_t detId_hvoff = (*ihvoff);
211 std::vector<uint32_t>::iterator ibad =
212 std::find(iPos->second.FaultyDetectors.begin(), iPos->second.FaultyDetectors.end(), detId_hvoff);
213 if (ibad == iPos->second.FaultyDetectors.end())
214 iPos->second.FaultyDetectors.push_back(detId_hvoff);
226 float total_det = 0.0;
227 float faulty_det = 0.0;
230 int total_subdet = subDetMEs.TotalDetectors;
231 int faulty_subdet = subDetMEs.FaultyDetectors.size();
235 fraction = 1.0 - faulty_subdet * 1.0 / total_subdet;
236 subDetMEs.DcsFractionME->Reset();
237 subDetMEs.DcsFractionME->Fill(
fraction);
238 edm::LogInfo(
"SiStripDcsInfo") <<
" SiStripDcsInfo::fillStatus : Sub Detector " <<
name <<
" Total Number "
239 << total_subdet <<
" Faulty ones " << faulty_subdet;
240 total_det += total_subdet;
241 faulty_det += faulty_subdet;
246 fraction = 1 - faulty_det / total_det;
255 for (
auto const detId_faulty :
pr.second.FaultyDetectors) {
256 pr.second.NLumiDetectorIsFaulty[detId_faulty]++;
270 pr.second.DcsFractionME->Reset();
271 pr.second.DcsFractionME->Fill(-1.0);
287 auto const& lumiCountBadModules =
pr.second.NLumiDetectorIsFaulty;
288 for (
auto const [ibad, nBadLumi] : lumiCountBadModules) {
291 std::string bad_module_folder = mechanical_dir +
"/" +
pr.second.folder_name +
296 std::ostringstream detid_str;
298 std::string full_path = bad_module_folder +
"/" + detid_str.str();