diff --git a/DQM/EcalMonitorTasks/interface/LedTask.h b/DQM/EcalMonitorTasks/interface/LedTask.h index 07bd08db229bb..5e1a88f12f0cd 100644 --- a/DQM/EcalMonitorTasks/interface/LedTask.h +++ b/DQM/EcalMonitorTasks/interface/LedTask.h @@ -31,6 +31,7 @@ namespace ecaldqm { void runOnPnDigis(EcalPnDiodeDigiCollection const&); void runOnUncalibRecHits(EcalUncalibratedRecHitCollection const&); + void endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override; private: void setParams(edm::ParameterSet const&); @@ -43,6 +44,7 @@ namespace ecaldqm { int emptyLS_; int emptyLSLimit_; + int isemptyLS; }; inline bool LedTask::analyze(void const* _p, Collections _collection){ diff --git a/DQM/EcalMonitorTasks/src/LedTask.cc b/DQM/EcalMonitorTasks/src/LedTask.cc index 069e9fcd5c33d..54ed40e6577a2 100644 --- a/DQM/EcalMonitorTasks/src/LedTask.cc +++ b/DQM/EcalMonitorTasks/src/LedTask.cc @@ -74,7 +74,8 @@ namespace ecaldqm { void LedTask::beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) { - if(++emptyLS_ > emptyLSLimit_) emptyLS_ = -1; + isemptyLS = 0; + if(emptyLS_+1 > emptyLSLimit_) emptyLS_ = -1; } void @@ -186,6 +187,9 @@ namespace ecaldqm { meSignalRate.fill((index <= kEEmHigh ? index : index + nEBDCC) + 1, enable_[index] ? 1 : 0); } + if(!enable && isemptyLS >= 0) isemptyLS = 1; + else if(enable) isemptyLS = -1; + if(enable) emptyLS_ = 0; else if(ledOnExpected) return; @@ -311,6 +315,11 @@ namespace ecaldqm { } } + void + LedTask::endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&){ + if(isemptyLS == 1)emptyLS_ += 1; + } + DEFINE_ECALDQM_WORKER(LedTask); }