diff --git a/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc b/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc index 12a0e48e3f481..11094448b3d70 100644 --- a/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc +++ b/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc @@ -17,6 +17,8 @@ #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "EventFilter/Utilities/interface/FastMonitoringService.h" + #include TriggerJSONMonitoring::TriggerJSONMonitoring(const edm::ParameterSet& ps) @@ -529,7 +531,18 @@ TriggerJSONMonitoring::endLuminosityBlockSummary(const edm::LuminosityBlock& iLu void TriggerJSONMonitoring::globalEndLuminosityBlockSummary(const edm::LuminosityBlock& iLumi, const edm::EventSetup& iSetup, const LuminosityBlockContext* iContext, hltJson::lumiVars* iSummary) { - if (iSummary->processed->value().at(0)!=0) { + + unsigned int iLs = iLumi.luminosityBlock(); + unsigned int iRun = iLumi.run(); + + bool writeFiles=true; + if (edm::Service().isAvailable()) { + evf::FastMonitoringService * fms = (evf::FastMonitoringService *)(edm::Service().operator->()); + if (fms) + writeFiles = fms->getEventsProcessedForLumi(iLs)>0; + } + + if (iSummary->processed->value().at(0)!=0 && writeFiles) { Json::StyledWriter writer; char hostname[33]; @@ -542,9 +555,6 @@ TriggerJSONMonitoring::globalEndLuminosityBlockSummary(const edm::LuminosityBloc std::stringstream sOutDef; sOutDef << monPath << "output_" << getpid() << ".jsd"; - unsigned int iLs = iLumi.luminosityBlock(); - unsigned int iRun = iLumi.run(); - //Write the .jsndata files which contain the actual rates //HLT .jsndata file Json::Value hltJsnData; @@ -573,6 +583,14 @@ TriggerJSONMonitoring::globalEndLuminosityBlockSummary(const edm::LuminosityBloc outHltJsnData<processed->value().at(0); - IntJ daqJsnAccepted_ = daqJsnProcessed_; - IntJ daqJsnErrorEvents_ = 0; - IntJ daqJsnRetCodeMask_ = 0; - - struct stat st; - - //HLT - StringJ hltJsnFilelist_; - hltJsnFilelist_.update(ssHltJsnData.str()); - - const char* cName = (monPath+ssHltJsnData.str()).c_str(); - stat(cName, &st); - - IntJ hltJsnFilesize_ = st.st_size; - StringJ hltJsnInputFiles_; - hltJsnInputFiles_.update(""); - IntJ hltJsnFileAdler32_ = cms::Adler32(cName, st.st_size); + IntJ daqJsnProcessed = iSummary->processed->value().at(0); + IntJ daqJsnAccepted = daqJsnProcessed; + IntJ daqJsnErrorEvents = 0; + IntJ daqJsnRetCodeMask = 0; + //write out HLT metadata jsn Json::Value hltDaqJsn; hltDaqJsn[DataPoint::SOURCE] = sourceHost; hltDaqJsn[DataPoint::DEFINITION] = sOutDef.str(); - hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnProcessed_.value()); - hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnAccepted_.value()); - hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnErrorEvents_.value()); - hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnRetCodeMask_.value()); - hltDaqJsn[DataPoint::DATA].append(hltJsnFilelist_.value()); - hltDaqJsn[DataPoint::DATA].append((unsigned int)hltJsnFilesize_.value()); - hltDaqJsn[DataPoint::DATA].append(hltJsnInputFiles_.value()); - hltDaqJsn[DataPoint::DATA].append((unsigned int)hltJsnFileAdler32_.value()); + hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnProcessed.value()); + hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnAccepted.value()); + hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnErrorEvents.value()); + hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnRetCodeMask.value()); + hltDaqJsn[DataPoint::DATA].append(hltJsnFilelist.value()); + hltDaqJsn[DataPoint::DATA].append((unsigned int)hltJsnFilesize.value()); + hltDaqJsn[DataPoint::DATA].append(hltJsnInputFiles.value()); + hltDaqJsn[DataPoint::DATA].append((unsigned int)hltJsnFileAdler32.value()); hltDaqJsn[DataPoint::DATA].append(iSummary->streamHLTDestination); result = writer.write(hltDaqJsn); @@ -644,30 +656,19 @@ TriggerJSONMonitoring::globalEndLuminosityBlockSummary(const edm::LuminosityBloc outHltDaqJsn<streamL1Destination); result = writer.write(l1DaqJsn);