From 7f18d0bb7b9caf377cf8ba07f0fa2f4d73e081b4 Mon Sep 17 00:00:00 2001 From: Srecko Morovic Date: Thu, 6 Nov 2014 13:46:10 +0100 Subject: [PATCH 1/2] no json streams' output with 0 processed events --- HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc b/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc index c7450b88a634a..a10f798e7cad3 100644 --- a/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc +++ b/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc @@ -485,6 +485,7 @@ 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) return; Json::StyledWriter writer; char hostname[33]; From a44a4e04ac30bc8f5e63f92c9fe4f0a4de341d35 Mon Sep 17 00:00:00 2001 From: Srecko Morovic Date: Thu, 6 Nov 2014 13:52:34 +0100 Subject: [PATCH 2/2] also make sure that delete is called with 0 events --- .../plugins/TriggerJSONMonitoring.cc | 281 +++++++++--------- 1 file changed, 141 insertions(+), 140 deletions(-) diff --git a/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc b/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc index a10f798e7cad3..6e993fb043f97 100644 --- a/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc +++ b/HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc @@ -485,146 +485,147 @@ 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) return; - Json::StyledWriter writer; - - char hostname[33]; - gethostname(hostname,32); - std::string sourceHost(hostname); - - //Get the output directory - std::string monPath = iSummary->baseRunDir + "/"; - - 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; - hltJsnData[DataPoint::SOURCE] = sourceHost; - hltJsnData[DataPoint::DEFINITION] = iSummary->stHltJsd; - - hltJsnData[DataPoint::DATA].append(iSummary->processed->toJsonValue()); - hltJsnData[DataPoint::DATA].append(iSummary->hltWasRun->toJsonValue()); - hltJsnData[DataPoint::DATA].append(iSummary->hltL1s ->toJsonValue()); - hltJsnData[DataPoint::DATA].append(iSummary->hltPre ->toJsonValue()); - hltJsnData[DataPoint::DATA].append(iSummary->hltAccept->toJsonValue()); - hltJsnData[DataPoint::DATA].append(iSummary->hltReject->toJsonValue()); - hltJsnData[DataPoint::DATA].append(iSummary->hltErrors->toJsonValue()); - - hltJsnData[DataPoint::DATA].append(iSummary->hltDatasets->toJsonValue()); - - std::string && result = writer.write(hltJsnData); - - std::stringstream ssHltJsnData; - ssHltJsnData << "run" << iRun << "_ls" << std::setfill('0') << std::setw(4) << iLs; - ssHltJsnData << "_streamHLTRates_pid" << std::setfill('0') << std::setw(5) << getpid() << ".jsndata"; - - std::ofstream outHltJsnData( monPath + ssHltJsnData.str() ); - outHltJsnData<stL1Jsd; - - l1JsnData[DataPoint::DATA].append(iSummary->processed->toJsonValue()); - l1JsnData[DataPoint::DATA].append(iSummary->L1Accept ->toJsonValue()); - l1JsnData[DataPoint::DATA].append(iSummary->L1TechAccept ->toJsonValue()); //DS - l1JsnData[DataPoint::DATA].append(iSummary->L1Global ->toJsonValue()); //DS - result = writer.write(l1JsnData); - - std::stringstream ssL1JsnData; - ssL1JsnData << "run" << iRun << "_ls" << std::setfill('0') << std::setw(4) << iLs; - ssL1JsnData << "_streamL1Rates_pid" << std::setfill('0') << std::setw(5) << getpid() << ".jsndata"; - - std::ofstream outL1JsnData( monPath + "/" + ssL1JsnData.str() ); - outL1JsnData<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); - - 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()); - - result = writer.write(hltDaqJsn); - - std::stringstream ssHltDaqJsn; - ssHltDaqJsn << "run" << iRun << "_ls" << std::setfill('0') << std::setw(4) << iLs; - ssHltDaqJsn << "_streamHLTRates_pid" << std::setfill('0') << std::setw(5) << getpid() << ".jsn"; - - std::ofstream outHltDaqJsn( monPath + ssHltDaqJsn.str() ); - outHltDaqJsn<processed->value().at(0)!=0) { + Json::StyledWriter writer; + + char hostname[33]; + gethostname(hostname,32); + std::string sourceHost(hostname); + + //Get the output directory + std::string monPath = iSummary->baseRunDir + "/"; + + 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; + hltJsnData[DataPoint::SOURCE] = sourceHost; + hltJsnData[DataPoint::DEFINITION] = iSummary->stHltJsd; + + hltJsnData[DataPoint::DATA].append(iSummary->processed->toJsonValue()); + hltJsnData[DataPoint::DATA].append(iSummary->hltWasRun->toJsonValue()); + hltJsnData[DataPoint::DATA].append(iSummary->hltL1s ->toJsonValue()); + hltJsnData[DataPoint::DATA].append(iSummary->hltPre ->toJsonValue()); + hltJsnData[DataPoint::DATA].append(iSummary->hltAccept->toJsonValue()); + hltJsnData[DataPoint::DATA].append(iSummary->hltReject->toJsonValue()); + hltJsnData[DataPoint::DATA].append(iSummary->hltErrors->toJsonValue()); + + hltJsnData[DataPoint::DATA].append(iSummary->hltDatasets->toJsonValue()); + + std::string && result = writer.write(hltJsnData); + + std::stringstream ssHltJsnData; + ssHltJsnData << "run" << iRun << "_ls" << std::setfill('0') << std::setw(4) << iLs; + ssHltJsnData << "_streamHLTRates_pid" << std::setfill('0') << std::setw(5) << getpid() << ".jsndata"; + + std::ofstream outHltJsnData( monPath + ssHltJsnData.str() ); + outHltJsnData<stL1Jsd; + + l1JsnData[DataPoint::DATA].append(iSummary->processed->toJsonValue()); + l1JsnData[DataPoint::DATA].append(iSummary->L1Accept ->toJsonValue()); + l1JsnData[DataPoint::DATA].append(iSummary->L1TechAccept ->toJsonValue()); //DS + l1JsnData[DataPoint::DATA].append(iSummary->L1Global ->toJsonValue()); //DS + result = writer.write(l1JsnData); + + std::stringstream ssL1JsnData; + ssL1JsnData << "run" << iRun << "_ls" << std::setfill('0') << std::setw(4) << iLs; + ssL1JsnData << "_streamL1Rates_pid" << std::setfill('0') << std::setw(5) << getpid() << ".jsndata"; + + std::ofstream outL1JsnData( monPath + "/" + ssL1JsnData.str() ); + outL1JsnData<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); + + 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()); + + result = writer.write(hltDaqJsn); + + std::stringstream ssHltDaqJsn; + ssHltDaqJsn << "run" << iRun << "_ls" << std::setfill('0') << std::setw(4) << iLs; + ssHltDaqJsn << "_streamHLTRates_pid" << std::setfill('0') << std::setw(5) << getpid() << ".jsn"; + + std::ofstream outHltDaqJsn( monPath + ssHltDaqJsn.str() ); + outHltDaqJsn<processed;