diff --git a/DQM/SiPixelMonitorClient/src/SiPixelActionExecutor.cc b/DQM/SiPixelMonitorClient/src/SiPixelActionExecutor.cc index dfb1bfadf7273..f7ed01fdb6462 100644 --- a/DQM/SiPixelMonitorClient/src/SiPixelActionExecutor.cc +++ b/DQM/SiPixelMonitorClient/src/SiPixelActionExecutor.cc @@ -1875,9 +1875,9 @@ void SiPixelActionExecutor::normaliseAvDigiOcc(DQMStore::IBooker &iBooker, DQMSt float averageFPIXOcc = totalDigisFPIX / 8.; for (int i = 1; i != 41; i++) { if (i < 33) - roccupancyPlot->setBinContent(i, roccupancyPlot->getBinContent(i) / averageBPIXOcc); + roccupancyPlot->setBinContent(i, averageBPIXOcc != 0. ? roccupancyPlot->getBinContent(i) / averageBPIXOcc : 0.); else - roccupancyPlot->setBinContent(i, roccupancyPlot->getBinContent(i) / averageFPIXOcc); + roccupancyPlot->setBinContent(i, averageFPIXOcc != 0. ? roccupancyPlot->getBinContent(i) / averageFPIXOcc : 0.); } iGetter.setCurrentFolder(iBooker.pwd()); @@ -1903,10 +1903,13 @@ void SiPixelActionExecutor::normaliseAvDigiOccVsLumi(DQMStore::IBooker &iBooker, float averageBPIXOcc = totalDigisBPIX / 32.; float averageFPIXOcc = totalDigisFPIX / 8.; for (int i = 1; i != 41; i++) { - if (i < 33) - avgfedDigiOccvsLumi->setBinContent(lumisec, i, avgfedDigiOccvsLumi->getBinContent(lumisec, i) / averageBPIXOcc); - else - avgfedDigiOccvsLumi->setBinContent(lumisec, i, avgfedDigiOccvsLumi->getBinContent(lumisec, i) / averageFPIXOcc); + if (i < 33) { + avgfedDigiOccvsLumi->setBinContent( + lumisec, i, averageBPIXOcc != 0. ? avgfedDigiOccvsLumi->getBinContent(lumisec, i) / averageBPIXOcc : 0.); + } else { + avgfedDigiOccvsLumi->setBinContent( + lumisec, i, averageFPIXOcc != 0. ? avgfedDigiOccvsLumi->getBinContent(lumisec, i) / averageFPIXOcc : 0.); + } } iGetter.setCurrentFolder(iBooker.pwd()); diff --git a/DQM/SiPixelMonitorDigi/src/SiPixelDigiSource.cc b/DQM/SiPixelMonitorDigi/src/SiPixelDigiSource.cc index e8f3903623e19..cff88ed7e3327 100644 --- a/DQM/SiPixelMonitorDigi/src/SiPixelDigiSource.cc +++ b/DQM/SiPixelMonitorDigi/src/SiPixelDigiSource.cc @@ -137,11 +137,12 @@ void SiPixelDigiSource::globalEndLuminosityBlock(const edm::LuminosityBlock& lb, averageDigiOccupancy->Fill( i, averageOcc); // "modOn" basically mean Online DQM, in this case fill histos with actual value of digi fraction per fed for each ten lumisections - if (avgfedDigiOccvsLumi && thisls % 5 == 0) + if (avgfedDigiOccvsLumi && thisls % 5 == 0) { avgfedDigiOccvsLumi->setBinContent( int(thisls / 5), i + 1, averageOcc); //fill with the mean over 5 lumisections, previous code was filling this histo only with last event of each 10th lumisection + } } }