#include <L1TEventInfoClient.h>
Public Member Functions | |
L1TEventInfoClient (const edm::ParameterSet &) | |
Constructor. | |
virtual | ~L1TEventInfoClient () |
Destructor. | |
Private Member Functions | |
void | analyze (const edm::Event &, const edm::EventSetup &) |
analyze | |
void | beginJob () |
begin job | |
void | beginLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) |
begin luminosity block | |
void | beginRun (const edm::Run &, const edm::EventSetup &) |
begin run | |
void | bookHistograms () |
book histograms | |
void | dumpContentMonitorElements () |
dump the content of the monitoring elements defined in this module | |
void | endJob () |
end job | |
void | endLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) |
end luminosity block | |
void | endRun (const edm::Run &, const edm::EventSetup &) |
end run | |
void | initialize () |
private methods | |
void | readQtResults () |
read quality test results | |
Private Attributes | |
DQMStore * | m_dbe |
std::vector< std::string > | m_disableL1Objects |
std::vector< std::string > | m_disableL1Systems |
std::vector< edm::ParameterSet > | m_l1Objects |
std::vector< edm::ParameterSet > | m_l1Systems |
MonitorElement * | m_meReportSummary |
a summary report | |
std::vector< MonitorElement * > | m_meReportSummaryContent |
monitor elements to report content for all quality tests | |
MonitorElement * | m_meReportSummaryMap |
report summary map | |
std::string | m_monitorDir |
size_t | m_nrL1Objects |
number of L1 trigger objects | |
size_t | m_nrL1Systems |
number of L1 trigger systems | |
std::vector< int > | m_objectDisable |
std::vector< std::string > | m_objectFolder |
std::vector< std::string > | m_objectLabel |
std::vector< std::vector < unsigned int > > | m_objectQtSummaryEnabled |
std::vector< std::vector < std::string > > | m_objectQualityTestHist |
std::vector< std::vector < std::string > > | m_objectQualityTestName |
Float_t | m_reportSummary |
summary report | |
bool | m_runInEndJob |
bool | m_runInEndLumi |
bool | m_runInEndRun |
bool | m_runInEventLoop |
std::vector< int > | m_summaryContent |
Float_t | m_summarySum |
std::vector< int > | m_systemDisable |
std::vector< std::string > | m_systemLabel |
std::vector< std::string > | m_systemLabelExt |
std::vector< std::vector < unsigned int > > | m_systemQtSummaryEnabled |
std::vector< std::vector < std::string > > | m_systemQualityTestHist |
std::vector< std::vector < std::string > > | m_systemQualityTestName |
size_t | m_totalNrQtSummaryEnabled |
bool | m_verbose |
input parameters |
Description: fill L1 report summary for trigger L1T and emulator L1TEMU DQM.
Implementation: <TODO: enter implementation details>
Re-designed and fully rewritten class. Original version and authors: see CVS history
Description: see header file.
Definition at line 42 of file L1TEventInfoClient.h.
L1TEventInfoClient::L1TEventInfoClient | ( | const edm::ParameterSet & | parSet | ) |
Constructor.
Definition at line 46 of file L1TEventInfoClient.cc.
References initialize().
: m_verbose(parSet.getUntrackedParameter<bool>("verbose", false)), m_monitorDir(parSet.getUntrackedParameter<std::string>("monitorDir", "")), m_runInEventLoop(parSet.getUntrackedParameter<bool>("runInEventLoop", false)), m_runInEndLumi(parSet.getUntrackedParameter<bool>("runInEndLumi", false)), m_runInEndRun(parSet.getUntrackedParameter<bool>("runInEndRun", false)), m_runInEndJob(parSet.getUntrackedParameter<bool>("runInEndJob", false)), m_l1Systems(parSet.getParameter<std::vector<edm::ParameterSet> >("L1Systems")), m_l1Objects(parSet.getParameter<std::vector<edm::ParameterSet> >("L1Objects")), m_disableL1Systems(parSet.getParameter<std::vector<std::string> >("DisableL1Systems")), m_disableL1Objects(parSet.getParameter<std::vector<std::string> >("DisableL1Objects")), m_nrL1Systems(0), m_nrL1Objects(0), m_totalNrQtSummaryEnabled(0) { initialize(); }
L1TEventInfoClient::~L1TEventInfoClient | ( | ) | [virtual] |
void L1TEventInfoClient::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | evSetup | ||
) | [private, virtual] |
analyze
Implements edm::EDAnalyzer.
Definition at line 265 of file L1TEventInfoClient.cc.
References m_runInEventLoop, and readQtResults().
{ // there is no loop on events in the offline harvesting step // code here will not be executed offline if (m_runInEventLoop) { readQtResults(); } }
void L1TEventInfoClient::beginJob | ( | void | ) | [private, virtual] |
begin job
Reimplemented from edm::EDAnalyzer.
Definition at line 242 of file L1TEventInfoClient.cc.
References m_dbe, and cppFunctionSkipper::operator.
{ // get backend interface m_dbe = edm::Service<DQMStore>().operator->(); }
void L1TEventInfoClient::beginLuminosityBlock | ( | const edm::LuminosityBlock & | lumiSeg, |
const edm::EventSetup & | evSetup | ||
) | [private, virtual] |
begin luminosity block
Reimplemented from edm::EDAnalyzer.
Definition at line 259 of file L1TEventInfoClient.cc.
{ }
void L1TEventInfoClient::beginRun | ( | const edm::Run & | run, |
const edm::EventSetup & | evSetup | ||
) | [private, virtual] |
begin run
Reimplemented from edm::EDAnalyzer.
Definition at line 251 of file L1TEventInfoClient.cc.
References bookHistograms().
{ bookHistograms(); }
void L1TEventInfoClient::bookHistograms | ( | ) | [private] |
book histograms
Definition at line 415 of file L1TEventInfoClient.cc.
References DQMStore::book2D(), DQMStore::bookFloat(), dqm::qstatus::DISABLED, MonitorElement::Fill(), DQMStore::get(), MonitorElement::getName(), m_dbe, m_meReportSummary, m_meReportSummaryContent, m_meReportSummaryMap, m_monitorDir, m_nrL1Objects, m_nrL1Systems, m_objectLabel, m_objectQualityTestName, m_summaryContent, m_systemLabel, m_systemQualityTestName, max(), DQMStore::removeElement(), MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), MonitorElement::setTitle(), and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by beginRun().
{ std::string dirEventInfo = m_monitorDir + "/EventInfo"; m_dbe->setCurrentFolder(dirEventInfo); // remove m_meReportSummary if it exists if ((m_meReportSummary = m_dbe->get(dirEventInfo + "/reportSummary"))) { m_dbe->removeElement(m_meReportSummary->getName()); } // ...and book it again m_meReportSummary = m_dbe->bookFloat("reportSummary"); // initialize reportSummary to 1 if (m_meReportSummary) { m_meReportSummary->Fill(1); } // define float histograms for reportSummaryContents (one histogram per quality test), // initialize them to zero // initialize also m_summaryContent to dqm::qstatus::DISABLED m_dbe->setCurrentFolder(dirEventInfo + "/reportSummaryContents"); char histoQT[100]; // general counters: // iAllQTest: all quality tests for all systems and objects // iAllMon: all monitored systems and objects int iAllQTest = 0; int iAllMon = 0; for (unsigned int iMon = 0; iMon < m_nrL1Systems; ++iMon) { m_summaryContent.push_back(dqm::qstatus::DISABLED); const std::vector<std::string>& sysQtName = m_systemQualityTestName[iMon]; for (std::vector<std::string>::const_iterator itQtName = sysQtName.begin(); itQtName != sysQtName.end(); ++itQtName) { const std::string hStr = m_monitorDir + "_L1Sys_" +m_systemLabel[iMon] + "_" + (*itQtName); const char* cStr = hStr.c_str(); sprintf(histoQT, cStr); m_meReportSummaryContent.push_back(m_dbe->bookFloat(histoQT)); m_meReportSummaryContent[iAllQTest]->Fill(0.); iAllQTest++; } iAllMon++; } for (unsigned int iMon = 0; iMon < m_nrL1Objects; ++iMon) { m_summaryContent.push_back(dqm::qstatus::DISABLED); const std::vector<std::string>& objQtName = m_objectQualityTestName[iMon]; for (std::vector<std::string>::const_iterator itQtName = objQtName.begin(); itQtName != objQtName.end(); ++itQtName) { const std::string hStr = m_monitorDir + "_L1Obj_" + m_objectLabel[iMon] + "_" + (*itQtName); const char* cStr = hStr.c_str(); sprintf(histoQT, cStr); m_meReportSummaryContent.push_back(m_dbe->bookFloat(histoQT)); m_meReportSummaryContent[iAllQTest]->Fill(0.); iAllQTest++; } iAllMon++; } m_dbe->setCurrentFolder(dirEventInfo); if ((m_meReportSummaryMap = m_dbe->get(dirEventInfo + "/reportSummaryMap"))) { m_dbe->removeElement(m_meReportSummaryMap->getName()); } // define a histogram with two bins on X and maximum of m_nrL1Systems, m_nrL1Objects on Y int nBinsY = std::max(m_nrL1Systems, m_nrL1Objects); m_meReportSummaryMap = m_dbe->book2D("reportSummaryMap", "reportSummaryMap", 2, 1, 3, nBinsY, 1, nBinsY + 1); if (m_monitorDir == "L1TEMU") { m_meReportSummaryMap->setTitle( "L1TEMU: L1 Emulator vs Data Report Summary Map"); } else if (m_monitorDir == "L1T") { m_meReportSummaryMap->setTitle( "L1T: L1 Trigger Data Report Summary Map"); } else { // do nothing } m_meReportSummaryMap->setAxisTitle("", 1); m_meReportSummaryMap->setAxisTitle("", 2); m_meReportSummaryMap->setBinLabel(1, "L1 systems", 1); m_meReportSummaryMap->setBinLabel(2, "L1 objects", 1); for (int iBin = 0; iBin < nBinsY; ++iBin) { m_meReportSummaryMap->setBinLabel(iBin + 1, " ", 2); } }
void L1TEventInfoClient::dumpContentMonitorElements | ( | ) | [private] |
dump the content of the monitoring elements defined in this module
Definition at line 329 of file L1TEventInfoClient.cc.
References gather_cfg::cout, DQMStore::get(), MonitorElement::getName(), MonitorElement::getTH2F(), estimatePileup::hist, m_dbe, m_meReportSummaryContent, m_meReportSummaryMap, m_monitorDir, m_nrL1Objects, m_nrL1Systems, m_objectDisable, m_objectLabel, m_summaryContent, m_systemDisable, m_systemLabel, and m_systemLabelExt.
Referenced by endJob(), endLuminosityBlock(), and endRun().
{ std::cout << "\nSummary report " << std::endl; // summary content MonitorElement* me = m_dbe->get(m_meReportSummaryMap->getName()); std::cout << "\nSummary content per system and object as filled in histogram\n " << m_meReportSummaryMap->getName() << std::endl; if (!me) { std::cout << "\nNo histogram " << m_meReportSummaryMap->getName() << "\nNo summary content per system and object as filled in histogram.\n " << std::endl; return; } TH2F* hist = me->getTH2F(); const int nBinsX = hist->GetNbinsX(); const int nBinsY = hist->GetNbinsY(); std::cout << nBinsX << " " << nBinsY; std::vector<std::vector<int> > meReportSummaryMap(nBinsX, std::vector<int>( nBinsY)); // for (int iBinX = 0; iBinX < nBinsX; iBinX++) { // for (int iBinY = 0; iBinY < nBinsY; iBinY++) { // meReportSummaryMap[iBinX][iBinY] // = static_cast<int>(me->GetBinContent(iBinX + 1, iBinY + 1)); // } // } std::cout << "\nL1 systems: " << m_nrL1Systems << " systems included\n" << "\n Summary content size: " << (m_summaryContent.size()) << std::endl; for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) { std::cout << std::setw(10) << m_systemLabel[iSys] << std::setw(10) << m_systemLabelExt[iSys] << " \t" << m_systemDisable[iSys] << " \t" << std::setw(25) << " m_summaryContent[" << std::setw(2) << iSys << "] = " << meReportSummaryMap[0][iSys] << std::endl; } std::cout << "\n L1 trigger objects: " << m_nrL1Objects << " objects included\n" << std::endl; for (unsigned int iMon = m_nrL1Systems; iMon < m_nrL1Systems + m_nrL1Objects; ++iMon) { std::cout << std::setw(20) << m_objectLabel[iMon - m_nrL1Systems] << " \t" << m_objectDisable[iMon - m_nrL1Systems] << " \t" << std::setw(25) << " m_summaryContent[" << std::setw(2) << iMon << "] = \t" << m_summaryContent[iMon] << std::endl; } std::cout << std::endl; // quality tests std::cout << "\nQuality test results as filled in " << "\n " << m_monitorDir << "/EventInfo/reportSummaryContents\n" << "\n Total number of quality tests: " << (m_meReportSummaryContent.size()) << "\n" << std::endl; for (std::vector<MonitorElement*>::const_iterator itME = m_meReportSummaryContent.begin(); itME != m_meReportSummaryContent.end(); ++itME) { std::cout << std::setw(50) << (*itME)->getName() << " \t" << std::setw(25) << (*itME)->getFloatValue() << std::endl; } std::cout << std::endl; }
void L1TEventInfoClient::endJob | ( | void | ) | [private, virtual] |
end job
Reimplemented from edm::EDAnalyzer.
Definition at line 314 of file L1TEventInfoClient.cc.
References gather_cfg::cout, dumpContentMonitorElements(), m_runInEndJob, m_verbose, and readQtResults().
{ if (m_runInEndJob) { readQtResults(); if (m_verbose) { std::cout << "\n L1TEventInfoClient::endRun\n" << std::endl; dumpContentMonitorElements(); } } }
void L1TEventInfoClient::endLuminosityBlock | ( | const edm::LuminosityBlock & | lumiSeg, |
const edm::EventSetup & | evSetup | ||
) | [private, virtual] |
end luminosity block
Reimplemented from edm::EDAnalyzer.
Definition at line 279 of file L1TEventInfoClient.cc.
References gather_cfg::cout, dumpContentMonitorElements(), m_runInEndLumi, m_verbose, and readQtResults().
{ if (m_runInEndLumi) { readQtResults(); if (m_verbose) { std::cout << "\n L1TEventInfoClient::endLuminosityBlock\n" << std::endl; dumpContentMonitorElements(); } } }
void L1TEventInfoClient::endRun | ( | const edm::Run & | run, |
const edm::EventSetup & | evSetup | ||
) | [private, virtual] |
end run
Reimplemented from edm::EDAnalyzer.
Definition at line 297 of file L1TEventInfoClient.cc.
References gather_cfg::cout, dumpContentMonitorElements(), m_runInEndRun, m_verbose, and readQtResults().
{ if (m_runInEndRun) { readQtResults(); if (m_verbose) { std::cout << "\n L1TEventInfoClient::endRun\n" << std::endl; dumpContentMonitorElements(); } } }
void L1TEventInfoClient::initialize | ( | ) | [private] |
private methods
initialize properly all elements
Definition at line 71 of file L1TEventInfoClient.cc.
References gather_cfg::cout, m_dbe, m_disableL1Objects, m_disableL1Systems, m_l1Objects, m_l1Systems, m_meReportSummaryContent, m_monitorDir, m_nrL1Objects, m_nrL1Systems, m_objectDisable, m_objectLabel, m_objectQtSummaryEnabled, m_objectQualityTestHist, m_objectQualityTestName, m_summaryContent, m_systemDisable, m_systemLabel, m_systemLabelExt, m_systemQtSummaryEnabled, m_systemQualityTestHist, m_systemQualityTestName, m_totalNrQtSummaryEnabled, m_verbose, cppFunctionSkipper::operator, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by L1TEventInfoClient().
{ // get back-end interface m_dbe = edm::Service<DQMStore>().operator->(); if (m_verbose) { std::cout << "\nMonitor directory = " << m_monitorDir << std::endl; } // L1 systems m_nrL1Systems = m_l1Systems.size(); m_systemLabel.reserve(m_nrL1Systems); m_systemLabelExt.reserve(m_nrL1Systems); m_systemDisable.reserve(m_nrL1Systems); // on average five quality test per system - just a best guess m_systemQualityTestName.reserve(5*m_nrL1Systems); m_systemQualityTestHist.reserve(5*m_nrL1Systems); m_systemQtSummaryEnabled.reserve(5*m_nrL1Systems); int indexSys = 0; int totalNrQualityTests = 0; for (std::vector<edm::ParameterSet>::const_iterator itSystem = m_l1Systems.begin(); itSystem != m_l1Systems.end(); ++itSystem) { m_systemLabel.push_back(itSystem->getParameter<std::string>( "SystemLabel")); m_systemLabelExt.push_back(itSystem->getParameter<std::string>( "HwValLabel")); m_systemDisable.push_back(itSystem->getParameter<unsigned int>( "SystemDisable")); // check the additional disable flag from m_disableL1Systems for (std::vector<std::string>::const_iterator itSys = m_disableL1Systems.begin(); itSys != m_disableL1Systems.end(); ++itSys) { if (*itSys == m_systemLabel[indexSys]) { m_systemDisable[indexSys] = 1; } } std::vector < edm::ParameterSet > qTests = itSystem->getParameter< std::vector<edm::ParameterSet> > ("QualityTests"); size_t qtPerSystem = qTests.size(); std::vector < std::string > qtNames; qtNames.reserve(qtPerSystem); std::vector < std::string > qtFullPathHists; qtFullPathHists.reserve(qtPerSystem); std::vector<unsigned int> qtSumEnabled; qtSumEnabled.reserve(qtPerSystem); for (std::vector<edm::ParameterSet>::const_iterator itQT = qTests.begin(); itQT != qTests.end(); ++itQT) { totalNrQualityTests++; qtNames.push_back( itQT->getParameter<std::string> ("QualityTestName")); qtFullPathHists.push_back( itQT->getParameter<std::string> ("QualityTestHist")); unsigned int qtEnabled = itQT->getParameter<unsigned int> ( "QualityTestSummaryEnabled"); qtSumEnabled.push_back(qtEnabled); if (qtEnabled) { m_totalNrQtSummaryEnabled++; } } m_systemQualityTestName.push_back(qtNames); m_systemQualityTestHist.push_back(qtFullPathHists); m_systemQtSummaryEnabled.push_back(qtSumEnabled); indexSys++; } // L1 objects // m_nrL1Objects = m_l1Objects.size(); m_objectLabel.reserve(m_nrL1Objects); m_objectDisable.reserve(m_nrL1Objects); // on average five quality test per object - just a best guess m_objectQualityTestName.reserve(5*m_nrL1Objects); m_objectQualityTestHist.reserve(5*m_nrL1Objects); m_objectQtSummaryEnabled.reserve(5*m_nrL1Objects); int indexObj = 0; for (std::vector<edm::ParameterSet>::const_iterator itObject = m_l1Objects.begin(); itObject != m_l1Objects.end(); ++itObject) { m_objectLabel.push_back(itObject->getParameter<std::string>( "ObjectLabel")); m_objectDisable.push_back(itObject->getParameter<unsigned int>( "ObjectDisable")); // check the additional disable flag from m_disableL1Objects for (std::vector<std::string>::const_iterator itObj = m_disableL1Objects.begin(); itObj != m_disableL1Objects.end(); ++itObj) { if (*itObj == m_objectLabel[indexObj]) { m_objectDisable[indexObj] = 1; } } std::vector < edm::ParameterSet > qTests = itObject->getParameter< std::vector<edm::ParameterSet> > ("QualityTests"); size_t qtPerObject = qTests.size(); std::vector < std::string > qtNames; qtNames.reserve(qtPerObject); std::vector < std::string > qtFullPathHists; qtFullPathHists.reserve(qtPerObject); std::vector<unsigned int> qtSumEnabled; qtSumEnabled.reserve(qtPerObject); for (std::vector<edm::ParameterSet>::const_iterator itQT = qTests.begin(); itQT != qTests.end(); ++itQT) { totalNrQualityTests++; qtNames.push_back( itQT->getParameter<std::string> ("QualityTestName")); qtFullPathHists.push_back( itQT->getParameter<std::string> ("QualityTestHist")); unsigned int qtEnabled = itQT->getParameter<unsigned int> ( "QualityTestSummaryEnabled"); qtSumEnabled.push_back(qtEnabled); if (qtEnabled) { m_totalNrQtSummaryEnabled++; } } m_objectQualityTestName.push_back(qtNames); m_objectQualityTestHist.push_back(qtFullPathHists); m_objectQtSummaryEnabled.push_back(qtSumEnabled); indexObj++; } m_summaryContent.reserve(m_nrL1Systems + m_nrL1Objects); m_meReportSummaryContent.reserve(totalNrQualityTests); }
void L1TEventInfoClient::readQtResults | ( | ) | [private] |
read quality test results
Definition at line 538 of file L1TEventInfoClient.cc.
References gather_cfg::cout, dqm::qstatus::DISABLED, MonitorElement::Fill(), DQMStore::get(), QReport::getMessage(), MonitorElement::getName(), MonitorElement::getQReport(), MonitorElement::getQReports(), QReport::getQTresult(), QReport::getStatus(), INVALID, m_dbe, m_meReportSummary, m_meReportSummaryContent, m_meReportSummaryMap, m_nrL1Objects, m_nrL1Systems, m_objectQtSummaryEnabled, m_objectQualityTestHist, m_objectQualityTestName, m_reportSummary, m_summaryContent, m_summarySum, m_systemQtSummaryEnabled, m_systemQualityTestHist, m_systemQualityTestName, m_totalNrQtSummaryEnabled, m_verbose, MonitorElement::setBinContent(), and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by analyze(), endJob(), endLuminosityBlock(), and endRun().
{ // initialize summary content, summary sum and ReportSummaryContent float histograms // for all L1 systems and L1 objects for (std::vector<int>::iterator it = m_summaryContent.begin(); it != m_summaryContent.end(); ++it) { (*it) = dqm::qstatus::DISABLED; } m_summarySum = 0.; for (std::vector<MonitorElement*>::iterator itME = m_meReportSummaryContent.begin(); itME != m_meReportSummaryContent.end(); ++itME) { (*itME)->Fill(0.); } // general counters: // iAllQTest: all quality tests for all systems and objects // iAllMon: all monitored systems and objects int iAllQTest = 0; int iAllMon = 0; // quality tests for all L1 systems for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) { // get the reports for each quality test const std::vector<std::string>& sysQtName = m_systemQualityTestName[iSys]; const std::vector<std::string>& sysQtHist = m_systemQualityTestHist[iSys]; const std::vector<unsigned int>& sysQtSummaryEnabled = m_systemQtSummaryEnabled[iSys]; // pro system counter for quality tests int iSysQTest = 0; for (std::vector<std::string>::const_iterator itQtName = sysQtName.begin(); itQtName != sysQtName.end(); ++itQtName) { // get results, status and message MonitorElement* qHist = m_dbe->get(sysQtHist[iSysQTest]); if (qHist) { const std::vector<QReport*> qtVec = qHist->getQReports(); const std::string hName = qHist->getName(); if (m_verbose) { std::cout << "\nNumber of quality tests " << " for histogram " << sysQtHist[iSysQTest] << ": " << qtVec.size() << "\n" << std::endl; } const QReport* sysQReport = qHist->getQReport(*itQtName); if (sysQReport) { const float sysQtResult = sysQReport->getQTresult(); const int sysQtStatus = sysQReport->getStatus(); const std::string& sysQtMessage = sysQReport->getMessage(); if (m_verbose) { std::cout << "\n" << (*itQtName) << " quality test:" << "\n result: " << sysQtResult << "\n status: " << sysQtStatus << "\n message: " << sysQtMessage << "\n" << "\nFilling m_meReportSummaryContent[" << iAllQTest << "] with value " << sysQtResult << "\n" << std::endl; } m_meReportSummaryContent[iAllQTest]->Fill(sysQtResult); // for the summary map, keep the highest status value ("ERROR") of all tests // which are considered for the summary plot if (sysQtSummaryEnabled[iSysQTest]) { if (sysQtStatus > m_summaryContent[iAllMon]) { m_summaryContent[iAllMon] = sysQtStatus; } m_summarySum += sysQtResult; } } else { // for the summary map, if the test was not found but it is assumed to be // considered for the summary plot, set it to dqm::qstatus::INVALID int sysQtStatus = dqm::qstatus::INVALID; if (sysQtSummaryEnabled[iSysQTest]) { if (sysQtStatus > m_summaryContent[iAllMon]) { m_summaryContent[iAllMon] = sysQtStatus; } } m_meReportSummaryContent[iAllQTest]->Fill(0.); if (m_verbose) { std::cout << "\n" << (*itQtName) << " quality test not found\n" << std::endl; } } } else { // for the summary map, if the histogram was not found but it is assumed // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID int sysQtStatus = dqm::qstatus::INVALID; if (sysQtSummaryEnabled[iSysQTest]) { if (sysQtStatus > m_summaryContent[iAllMon]) { m_summaryContent[iAllMon] = sysQtStatus; } } m_meReportSummaryContent[iAllQTest]->Fill(0.); if (m_verbose) { std::cout << "\nHistogram " << sysQtHist[iSysQTest] << " not found\n" << std::endl; } } // increase counters for quality tests iSysQTest++; iAllQTest++; } iAllMon++; } // quality tests for all L1 objects for (unsigned int iObj = 0; iObj < m_nrL1Objects; ++iObj) { // get the reports for each quality test const std::vector<std::string>& objQtName = m_objectQualityTestName[iObj]; const std::vector<std::string>& objQtHist = m_objectQualityTestHist[iObj]; const std::vector<unsigned int>& objQtSummaryEnabled = m_objectQtSummaryEnabled[iObj]; // pro object counter for quality tests int iObjQTest = 0; for (std::vector<std::string>::const_iterator itQtName = objQtName.begin(); itQtName != objQtName.end(); ++itQtName) { // get results, status and message MonitorElement* qHist = m_dbe->get(objQtHist[iObjQTest]); if (qHist) { const std::vector<QReport*> qtVec = qHist->getQReports(); const std::string hName = qHist->getName(); if (m_verbose) { std::cout << "\nNumber of quality tests " << " for histogram " << objQtHist[iObjQTest] << ": " << qtVec.size() << "\n" << std::endl; } const QReport* objQReport = qHist->getQReport(*itQtName); if (objQReport) { const float objQtResult = objQReport->getQTresult(); const int objQtStatus = objQReport->getStatus(); const std::string& objQtMessage = objQReport->getMessage(); if (m_verbose) { std::cout << "\n" << (*itQtName) << " quality test:" << "\n result: " << objQtResult << "\n status: " << objQtStatus << "\n message: " << objQtMessage << "\n" << "\nFilling m_meReportSummaryContent[" << iAllQTest << "] with value " << objQtResult << "\n" << std::endl; } m_meReportSummaryContent[iAllQTest]->Fill(objQtResult); // for the summary map, keep the highest status value ("ERROR") of all tests // which are considered for the summary plot if (objQtSummaryEnabled[iObjQTest]) { if (objQtStatus > m_summaryContent[iAllMon]) { m_summaryContent[iAllMon] = objQtStatus; } m_summarySum += objQtResult; } } else { // for the summary map, if the test was not found but it is assumed to be // considered for the summary plot, set it to dqm::qstatus::INVALID int objQtStatus = dqm::qstatus::INVALID; if (objQtSummaryEnabled[iObjQTest]) { if (objQtStatus > m_summaryContent[iAllMon]) { m_summaryContent[iAllMon] = objQtStatus; } } m_meReportSummaryContent[iAllQTest]->Fill(0.); if (m_verbose) { std::cout << "\n" << (*itQtName) << " quality test not found\n" << std::endl; } } } else { // for the summary map, if the histogram was not found but it is assumed // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID int objQtStatus = dqm::qstatus::INVALID; if (objQtSummaryEnabled[iObjQTest]) { if (objQtStatus > m_summaryContent[iAllMon]) { m_summaryContent[iAllMon] = objQtStatus; } } m_meReportSummaryContent[iAllQTest]->Fill(0.); if (m_verbose) { std::cout << "\nHistogram " << objQtHist[iObjQTest] << " not found\n" << std::endl; } } // increase counters for quality tests iObjQTest++; iAllQTest++; } iAllMon++; } // reportSummary value m_reportSummary = m_summarySum / float(m_totalNrQtSummaryEnabled); if (m_meReportSummary) { m_meReportSummary->Fill(m_reportSummary); } // fill the ReportSummaryMap for L1 systems (bin 1 on X) for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) { double summCont = static_cast<double>(m_summaryContent[iSys]); m_meReportSummaryMap->setBinContent(1, iSys + 1, summCont); } // fill the ReportSummaryMap for L1 objects (bin 2 on X) for (unsigned int iMon = m_nrL1Systems; iMon < m_nrL1Systems + m_nrL1Objects; ++iMon) { double summCont = static_cast<double>(m_summaryContent[iMon]); m_meReportSummaryMap->setBinContent(2, iMon - m_nrL1Systems + 1, summCont); } }
DQMStore* L1TEventInfoClient::m_dbe [private] |
Definition at line 152 of file L1TEventInfoClient.h.
Referenced by beginJob(), bookHistograms(), dumpContentMonitorElements(), initialize(), and readQtResults().
std::vector<std::string> L1TEventInfoClient::m_disableL1Objects [private] |
Definition at line 92 of file L1TEventInfoClient.h.
Referenced by initialize().
std::vector<std::string> L1TEventInfoClient::m_disableL1Systems [private] |
Definition at line 91 of file L1TEventInfoClient.h.
Referenced by initialize().
std::vector<edm::ParameterSet> L1TEventInfoClient::m_l1Objects [private] |
Definition at line 90 of file L1TEventInfoClient.h.
Referenced by initialize().
std::vector<edm::ParameterSet> L1TEventInfoClient::m_l1Systems [private] |
Definition at line 89 of file L1TEventInfoClient.h.
Referenced by initialize().
a summary report
Definition at line 142 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), and readQtResults().
std::vector<MonitorElement*> L1TEventInfoClient::m_meReportSummaryContent [private] |
monitor elements to report content for all quality tests
Definition at line 145 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), initialize(), and readQtResults().
report summary map
Definition at line 148 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), and readQtResults().
std::string L1TEventInfoClient::m_monitorDir [private] |
Definition at line 82 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), and initialize().
size_t L1TEventInfoClient::m_nrL1Objects [private] |
number of L1 trigger objects
Definition at line 112 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), initialize(), and readQtResults().
size_t L1TEventInfoClient::m_nrL1Systems [private] |
number of L1 trigger systems
Definition at line 109 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), initialize(), and readQtResults().
std::vector<int> L1TEventInfoClient::m_objectDisable [private] |
Definition at line 126 of file L1TEventInfoClient.h.
Referenced by dumpContentMonitorElements(), and initialize().
std::vector<std::string> L1TEventInfoClient::m_objectFolder [private] |
Definition at line 128 of file L1TEventInfoClient.h.
std::vector<std::string> L1TEventInfoClient::m_objectLabel [private] |
Definition at line 127 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), and initialize().
std::vector<std::vector<unsigned int> > L1TEventInfoClient::m_objectQtSummaryEnabled [private] |
Definition at line 132 of file L1TEventInfoClient.h.
Referenced by initialize(), and readQtResults().
std::vector<std::vector<std::string> > L1TEventInfoClient::m_objectQualityTestHist [private] |
Definition at line 131 of file L1TEventInfoClient.h.
Referenced by initialize(), and readQtResults().
std::vector<std::vector<std::string> > L1TEventInfoClient::m_objectQualityTestName [private] |
Definition at line 130 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), initialize(), and readQtResults().
Float_t L1TEventInfoClient::m_reportSummary [private] |
bool L1TEventInfoClient::m_runInEndJob [private] |
Definition at line 87 of file L1TEventInfoClient.h.
Referenced by endJob().
bool L1TEventInfoClient::m_runInEndLumi [private] |
Definition at line 85 of file L1TEventInfoClient.h.
Referenced by endLuminosityBlock().
bool L1TEventInfoClient::m_runInEndRun [private] |
Definition at line 86 of file L1TEventInfoClient.h.
Referenced by endRun().
bool L1TEventInfoClient::m_runInEventLoop [private] |
Definition at line 84 of file L1TEventInfoClient.h.
Referenced by analyze().
std::vector<int> L1TEventInfoClient::m_summaryContent [private] |
Definition at line 138 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), initialize(), and readQtResults().
Float_t L1TEventInfoClient::m_summarySum [private] |
Definition at line 137 of file L1TEventInfoClient.h.
Referenced by readQtResults().
std::vector<int> L1TEventInfoClient::m_systemDisable [private] |
Definition at line 120 of file L1TEventInfoClient.h.
Referenced by dumpContentMonitorElements(), and initialize().
std::vector<std::string> L1TEventInfoClient::m_systemLabel [private] |
Definition at line 118 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), and initialize().
std::vector<std::string> L1TEventInfoClient::m_systemLabelExt [private] |
Definition at line 119 of file L1TEventInfoClient.h.
Referenced by dumpContentMonitorElements(), and initialize().
std::vector<std::vector<unsigned int> > L1TEventInfoClient::m_systemQtSummaryEnabled [private] |
Definition at line 124 of file L1TEventInfoClient.h.
Referenced by initialize(), and readQtResults().
std::vector<std::vector<std::string> > L1TEventInfoClient::m_systemQualityTestHist [private] |
Definition at line 123 of file L1TEventInfoClient.h.
Referenced by initialize(), and readQtResults().
std::vector<std::vector<std::string> > L1TEventInfoClient::m_systemQualityTestName [private] |
Definition at line 122 of file L1TEventInfoClient.h.
Referenced by bookHistograms(), initialize(), and readQtResults().
size_t L1TEventInfoClient::m_totalNrQtSummaryEnabled [private] |
total number of quality tests enabled for summary report for L1 trigger systems and L1 trigger objects
Definition at line 116 of file L1TEventInfoClient.h.
Referenced by initialize(), and readQtResults().
bool L1TEventInfoClient::m_verbose [private] |
input parameters
Definition at line 81 of file L1TEventInfoClient.h.
Referenced by endJob(), endLuminosityBlock(), endRun(), initialize(), and readQtResults().