#include <L1TEMUEventInfoClient.h>
Public Member Functions | |
L1TEMUEventInfoClient (const edm::ParameterSet &) | |
Constructor. | |
virtual | ~L1TEMUEventInfoClient () |
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< edm::ParameterSet > | m_l1Objects |
std::vector< edm::ParameterSet > | m_l1Systems |
std::vector< std::string > | m_maskL1Objects |
std::vector< std::string > | m_maskL1Systems |
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< std::string > | m_objectFolder |
std::vector< std::string > | m_objectLabel |
std::vector< int > | m_objectMask |
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< std::string > | m_systemFolder |
std::vector< std::string > | m_systemLabel |
std::vector< std::string > | m_systemLabelExt |
std::vector< int > | m_systemMask |
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 emulator 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 L1TEMUEventInfoClient.h.
L1TEMUEventInfoClient::L1TEMUEventInfoClient | ( | const edm::ParameterSet & | parSet | ) |
Constructor.
Definition at line 46 of file L1TEMUEventInfoClient.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_maskL1Systems(parSet.getParameter<std::vector<std::string> >("MaskL1Systems")), m_maskL1Objects(parSet.getParameter<std::vector<std::string> >("MaskL1Objects")), m_nrL1Systems(0), m_nrL1Objects(0), m_totalNrQtSummaryEnabled(0) { initialize(); }
L1TEMUEventInfoClient::~L1TEMUEventInfoClient | ( | ) | [virtual] |
void L1TEMUEventInfoClient::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | evSetup | ||
) | [private, virtual] |
analyze
Implements edm::EDAnalyzer.
Definition at line 315 of file L1TEMUEventInfoClient.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 L1TEMUEventInfoClient::beginJob | ( | void | ) | [private, virtual] |
begin job
Reimplemented from edm::EDAnalyzer.
Definition at line 292 of file L1TEMUEventInfoClient.cc.
References m_dbe, and cppFunctionSkipper::operator.
{ // get backend interface m_dbe = edm::Service<DQMStore>().operator->(); }
void L1TEMUEventInfoClient::beginLuminosityBlock | ( | const edm::LuminosityBlock & | lumiSeg, |
const edm::EventSetup & | evSetup | ||
) | [private, virtual] |
begin luminosity block
Reimplemented from edm::EDAnalyzer.
Definition at line 309 of file L1TEMUEventInfoClient.cc.
{ }
void L1TEMUEventInfoClient::beginRun | ( | const edm::Run & | run, |
const edm::EventSetup & | evSetup | ||
) | [private, virtual] |
begin run
Reimplemented from edm::EDAnalyzer.
Definition at line 301 of file L1TEMUEventInfoClient.cc.
References bookHistograms().
{ bookHistograms(); }
void L1TEMUEventInfoClient::bookHistograms | ( | ) | [private] |
book histograms
Definition at line 465 of file L1TEMUEventInfoClient.cc.
References DQMStore::book2D(), DQMStore::bookFloat(), dqm::qstatus::DISABLED, MonitorElement::Fill(), DQMStore::get(), MonitorElement::getName(), m_dbe, m_meReportSummary, m_meReportSummaryContent, m_meReportSummaryMap, m_nrL1Objects, m_nrL1Systems, m_objectLabel, m_objectQualityTestName, m_summaryContent, m_systemLabel, m_systemQualityTestName, max(), DQMStore::removeElement(), MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), and DQMStore::setCurrentFolder().
Referenced by beginRun().
{ m_dbe->setCurrentFolder("L1TEMU/EventInfo"); // remove m_meReportSummary if it exists if ((m_meReportSummary = m_dbe->get("L1TEMU/EventInfo/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("L1TEMU/EventInfo/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 = "L1TEMU_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 = "L1TEMU_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("L1TEMU/EventInfo"); if ((m_meReportSummaryMap = m_dbe->get("L1TEMU/EventInfo/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); m_meReportSummaryMap->setAxisTitle("", 1); m_meReportSummaryMap->setAxisTitle("", 2); m_meReportSummaryMap->setBinLabel(1, " ", 1); m_meReportSummaryMap->setBinLabel(2, " ", 1); for (int iBin = 0; iBin < nBinsY; ++iBin) { m_meReportSummaryMap->setBinLabel(iBin + 1, " ", 2); } }
void L1TEMUEventInfoClient::dumpContentMonitorElements | ( | ) | [private] |
dump the content of the monitoring elements defined in this module
Definition at line 379 of file L1TEMUEventInfoClient.cc.
References gather_cfg::cout, DQMStore::get(), MonitorElement::getName(), MonitorElement::getTH2F(), estimatePileup::hist, m_dbe, m_meReportSummaryContent, m_meReportSummaryMap, m_nrL1Objects, m_nrL1Systems, m_objectLabel, m_objectMask, m_summaryContent, m_systemLabel, m_systemLabelExt, and m_systemMask.
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_systemMask[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_objectMask[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 L1TEMU/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 L1TEMUEventInfoClient::endJob | ( | void | ) | [private, virtual] |
end job
Reimplemented from edm::EDAnalyzer.
Definition at line 364 of file L1TEMUEventInfoClient.cc.
References gather_cfg::cout, dumpContentMonitorElements(), m_runInEndJob, m_verbose, and readQtResults().
{ if (m_runInEndJob) { readQtResults(); if (m_verbose) { std::cout << "\n L1TEMUEventInfoClient::endRun\n" << std::endl; dumpContentMonitorElements(); } } }
void L1TEMUEventInfoClient::endLuminosityBlock | ( | const edm::LuminosityBlock & | lumiSeg, |
const edm::EventSetup & | evSetup | ||
) | [private, virtual] |
end luminosity block
Reimplemented from edm::EDAnalyzer.
Definition at line 329 of file L1TEMUEventInfoClient.cc.
References gather_cfg::cout, dumpContentMonitorElements(), m_runInEndLumi, m_verbose, and readQtResults().
{ if (m_runInEndLumi) { readQtResults(); if (m_verbose) { std::cout << "\n L1TEMUEventInfoClient::endLuminosityBlock\n" << std::endl; dumpContentMonitorElements(); } } }
void L1TEMUEventInfoClient::endRun | ( | const edm::Run & | run, |
const edm::EventSetup & | evSetup | ||
) | [private, virtual] |
end run
Reimplemented from edm::EDAnalyzer.
Definition at line 347 of file L1TEMUEventInfoClient.cc.
References gather_cfg::cout, dumpContentMonitorElements(), m_runInEndRun, m_verbose, and readQtResults().
{ if (m_runInEndRun) { readQtResults(); if (m_verbose) { std::cout << "\n L1TEMUEventInfoClient::endRun\n" << std::endl; dumpContentMonitorElements(); } } }
void L1TEMUEventInfoClient::initialize | ( | ) | [private] |
private methods
initialize properly all elements
Definition at line 71 of file L1TEMUEventInfoClient.cc.
References gather_cfg::cout, Exception, estimatePileup::hist, m_dbe, m_l1Objects, m_l1Systems, m_maskL1Objects, m_maskL1Systems, m_meReportSummaryContent, m_monitorDir, m_nrL1Objects, m_nrL1Systems, m_objectFolder, m_objectLabel, m_objectMask, m_objectQtSummaryEnabled, m_objectQualityTestHist, m_objectQualityTestName, m_summaryContent, m_systemFolder, m_systemLabel, m_systemLabelExt, m_systemMask, m_systemQtSummaryEnabled, m_systemQualityTestHist, m_systemQualityTestName, m_totalNrQtSummaryEnabled, m_verbose, and cppFunctionSkipper::operator.
Referenced by L1TEMUEventInfoClient().
{ // get back-end interface m_dbe = edm::Service<DQMStore>().operator->(); if (m_verbose) { std::cout << "\nMonitor directory = " << m_monitorDir << std::endl; } // m_nrL1Systems = m_l1Systems.size(); m_systemLabel.reserve(m_nrL1Systems); m_systemLabelExt.reserve(m_nrL1Systems); m_systemMask.reserve(m_nrL1Systems); m_systemFolder.reserve(m_nrL1Systems); // on average two quality test per system - just a best guess m_systemQualityTestName.reserve(2*m_nrL1Systems); m_systemQualityTestHist.reserve(2*m_nrL1Systems); m_systemQtSummaryEnabled.reserve(2*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_systemMask.push_back(itSystem->getParameter<unsigned int>( "SystemMask")); // check the additional mask from m_maskL1Systems for (std::vector<std::string>::const_iterator itSys = m_maskL1Systems.begin(); itSys != m_maskL1Systems.end(); ++itSys) { if (*itSys == m_systemLabel[indexSys]) { m_systemMask[indexSys] = 1; } } // std::string sysFolder = itSystem->getParameter<std::string> ( "SystemFolder"); m_systemFolder.push_back(sysFolder); // std::vector<std::string> qtNames = itSystem->getParameter< std::vector<std::string> >("QualityTestName"); m_systemQualityTestName.push_back(qtNames); totalNrQualityTests = totalNrQualityTests + qtNames.size(); // std::vector<std::string> qtHists = itSystem->getParameter< std::vector<std::string> > ("QualityTestHist"); std::vector<std::string> qtFullPathHists; qtFullPathHists.reserve(qtHists.size()); for (std::vector<std::string>::const_iterator itQtHist = qtHists.begin(); itQtHist != qtHists.end(); ++itQtHist) { std::string hist = *itQtHist; if (sysFolder == "") { hist = "L1TEMU/" + m_systemLabel[indexSys] + "/" + hist; } else { hist = sysFolder + "/" + hist; } qtFullPathHists.push_back(hist); } m_systemQualityTestHist.push_back(qtFullPathHists); // std::vector<unsigned int> qtSumEnabled = itSystem->getParameter< std::vector<unsigned int> >("QualityTestSummaryEnabled"); m_systemQtSummaryEnabled.push_back(qtSumEnabled); for (std::vector<unsigned int>::const_iterator itQtSumEnabled = qtSumEnabled.begin(); itQtSumEnabled != qtSumEnabled.end(); ++itQtSumEnabled) { m_totalNrQtSummaryEnabled++; } // consistency check - throw exception, it will crash anyway if not consistent if ( (qtNames.size() != qtHists.size()) || (qtNames.size() != qtSumEnabled.size()) || (qtHists.size() != qtSumEnabled.size())) { throw cms::Exception("FailModule") << "\nError: inconsistent size of input vector parameters" << "\n QualityTestName, QualityTestHistQuality, TestSummaryEnabled" << "\nfor system " << m_systemLabel[indexSys] << "\n They must have equal size.\n" << std::endl; } indexSys++; } // L1 objects // m_nrL1Objects = m_l1Objects.size(); m_objectLabel.reserve(m_nrL1Objects); m_objectMask.reserve(m_nrL1Objects); m_objectFolder.reserve(m_nrL1Objects); // on average two quality test per object - just a best guess m_objectQualityTestName.reserve(2*m_nrL1Objects); m_objectQualityTestHist.reserve(2*m_nrL1Objects); m_objectQtSummaryEnabled.reserve(2*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_objectMask.push_back(itObject->getParameter<unsigned int>( "ObjectMask")); // check the additional mask from m_maskL1Objects for (std::vector<std::string>::const_iterator itObj = m_maskL1Objects.begin(); itObj != m_maskL1Objects.end(); ++itObj) { if (*itObj == m_objectLabel[indexObj]) { m_objectMask[indexObj] = 1; } } // std::string objFolder = itObject->getParameter<std::string> ( "ObjectFolder"); m_objectFolder.push_back(objFolder); // std::vector<std::string> qtNames = itObject->getParameter< std::vector<std::string> >("QualityTestName"); m_objectQualityTestName.push_back(qtNames); totalNrQualityTests = totalNrQualityTests + qtNames.size(); // std::vector<std::string> qtHists = itObject->getParameter< std::vector<std::string> > ("QualityTestHist"); std::vector<std::string> qtFullPathHists; qtFullPathHists.reserve(qtHists.size()); for (std::vector<std::string>::const_iterator itQtHist = qtHists.begin(); itQtHist != qtHists.end(); ++itQtHist) { std::string hist = *itQtHist; if (objFolder == "") { hist = "L1TEMU/" + m_objectLabel[indexObj] + "/" + hist; } else { hist = objFolder + hist; } qtFullPathHists.push_back(hist); } m_objectQualityTestHist.push_back(qtFullPathHists); // std::vector<unsigned int> qtSumEnabled = itObject->getParameter< std::vector<unsigned int> >("QualityTestSummaryEnabled"); m_objectQtSummaryEnabled.push_back(qtSumEnabled); for (std::vector<unsigned int>::const_iterator itQtSumEnabled = qtSumEnabled.begin(); itQtSumEnabled != qtSumEnabled.end(); ++itQtSumEnabled) { m_totalNrQtSummaryEnabled++; } // consistency check - throw exception, it will crash anyway if not consistent if ( (qtNames.size() != qtHists.size()) || (qtNames.size() != qtSumEnabled.size()) || (qtHists.size() != qtSumEnabled.size())) { throw cms::Exception("FailModule") << "\nError: inconsistent size of input vector parameters" << "\n QualityTestName, QualityTestHistQuality, TestSummaryEnabled" << "\nfor object " << m_objectLabel[indexObj] << "\nThe three vectors must have equal size.\n" << std::endl; } indexObj++; } m_summaryContent.reserve(m_nrL1Systems + m_nrL1Objects); m_meReportSummaryContent.reserve(totalNrQualityTests); }
void L1TEMUEventInfoClient::readQtResults | ( | ) | [private] |
read quality test results
Definition at line 575 of file L1TEMUEventInfoClient.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, and MonitorElement::setBinContent().
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* L1TEMUEventInfoClient::m_dbe [private] |
Definition at line 153 of file L1TEMUEventInfoClient.h.
Referenced by beginJob(), bookHistograms(), dumpContentMonitorElements(), initialize(), and readQtResults().
std::vector<edm::ParameterSet> L1TEMUEventInfoClient::m_l1Objects [private] |
Definition at line 90 of file L1TEMUEventInfoClient.h.
Referenced by initialize().
std::vector<edm::ParameterSet> L1TEMUEventInfoClient::m_l1Systems [private] |
Definition at line 89 of file L1TEMUEventInfoClient.h.
Referenced by initialize().
std::vector<std::string> L1TEMUEventInfoClient::m_maskL1Objects [private] |
Definition at line 92 of file L1TEMUEventInfoClient.h.
Referenced by initialize().
std::vector<std::string> L1TEMUEventInfoClient::m_maskL1Systems [private] |
Definition at line 91 of file L1TEMUEventInfoClient.h.
Referenced by initialize().
a summary report
Definition at line 143 of file L1TEMUEventInfoClient.h.
Referenced by bookHistograms(), and readQtResults().
std::vector<MonitorElement*> L1TEMUEventInfoClient::m_meReportSummaryContent [private] |
monitor elements to report content for all quality tests
Definition at line 146 of file L1TEMUEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), initialize(), and readQtResults().
report summary map
Definition at line 149 of file L1TEMUEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), and readQtResults().
std::string L1TEMUEventInfoClient::m_monitorDir [private] |
Definition at line 82 of file L1TEMUEventInfoClient.h.
Referenced by initialize().
size_t L1TEMUEventInfoClient::m_nrL1Objects [private] |
number of L1 trigger objects
Definition at line 112 of file L1TEMUEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), initialize(), and readQtResults().
size_t L1TEMUEventInfoClient::m_nrL1Systems [private] |
number of L1 trigger systems
Definition at line 109 of file L1TEMUEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), initialize(), and readQtResults().
std::vector<std::string> L1TEMUEventInfoClient::m_objectFolder [private] |
Definition at line 129 of file L1TEMUEventInfoClient.h.
Referenced by initialize().
std::vector<std::string> L1TEMUEventInfoClient::m_objectLabel [private] |
Definition at line 128 of file L1TEMUEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), and initialize().
std::vector<int> L1TEMUEventInfoClient::m_objectMask [private] |
Definition at line 127 of file L1TEMUEventInfoClient.h.
Referenced by dumpContentMonitorElements(), and initialize().
std::vector<std::vector<unsigned int> > L1TEMUEventInfoClient::m_objectQtSummaryEnabled [private] |
Definition at line 133 of file L1TEMUEventInfoClient.h.
Referenced by initialize(), and readQtResults().
std::vector<std::vector<std::string> > L1TEMUEventInfoClient::m_objectQualityTestHist [private] |
Definition at line 132 of file L1TEMUEventInfoClient.h.
Referenced by initialize(), and readQtResults().
std::vector<std::vector<std::string> > L1TEMUEventInfoClient::m_objectQualityTestName [private] |
Definition at line 131 of file L1TEMUEventInfoClient.h.
Referenced by bookHistograms(), initialize(), and readQtResults().
Float_t L1TEMUEventInfoClient::m_reportSummary [private] |
summary report
Definition at line 137 of file L1TEMUEventInfoClient.h.
Referenced by readQtResults().
bool L1TEMUEventInfoClient::m_runInEndJob [private] |
Definition at line 87 of file L1TEMUEventInfoClient.h.
Referenced by endJob().
bool L1TEMUEventInfoClient::m_runInEndLumi [private] |
Definition at line 85 of file L1TEMUEventInfoClient.h.
Referenced by endLuminosityBlock().
bool L1TEMUEventInfoClient::m_runInEndRun [private] |
Definition at line 86 of file L1TEMUEventInfoClient.h.
Referenced by endRun().
bool L1TEMUEventInfoClient::m_runInEventLoop [private] |
Definition at line 84 of file L1TEMUEventInfoClient.h.
Referenced by analyze().
std::vector<int> L1TEMUEventInfoClient::m_summaryContent [private] |
Definition at line 139 of file L1TEMUEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), initialize(), and readQtResults().
Float_t L1TEMUEventInfoClient::m_summarySum [private] |
Definition at line 138 of file L1TEMUEventInfoClient.h.
Referenced by readQtResults().
std::vector<std::string> L1TEMUEventInfoClient::m_systemFolder [private] |
Definition at line 121 of file L1TEMUEventInfoClient.h.
Referenced by initialize().
std::vector<std::string> L1TEMUEventInfoClient::m_systemLabel [private] |
Definition at line 118 of file L1TEMUEventInfoClient.h.
Referenced by bookHistograms(), dumpContentMonitorElements(), and initialize().
std::vector<std::string> L1TEMUEventInfoClient::m_systemLabelExt [private] |
Definition at line 119 of file L1TEMUEventInfoClient.h.
Referenced by dumpContentMonitorElements(), and initialize().
std::vector<int> L1TEMUEventInfoClient::m_systemMask [private] |
Definition at line 120 of file L1TEMUEventInfoClient.h.
Referenced by dumpContentMonitorElements(), and initialize().
std::vector<std::vector<unsigned int> > L1TEMUEventInfoClient::m_systemQtSummaryEnabled [private] |
Definition at line 125 of file L1TEMUEventInfoClient.h.
Referenced by initialize(), and readQtResults().
std::vector<std::vector<std::string> > L1TEMUEventInfoClient::m_systemQualityTestHist [private] |
Definition at line 124 of file L1TEMUEventInfoClient.h.
Referenced by initialize(), and readQtResults().
std::vector<std::vector<std::string> > L1TEMUEventInfoClient::m_systemQualityTestName [private] |
Definition at line 123 of file L1TEMUEventInfoClient.h.
Referenced by bookHistograms(), initialize(), and readQtResults().
size_t L1TEMUEventInfoClient::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 L1TEMUEventInfoClient.h.
Referenced by initialize(), and readQtResults().
bool L1TEMUEventInfoClient::m_verbose [private] |
input parameters
Definition at line 81 of file L1TEMUEventInfoClient.h.
Referenced by endJob(), endLuminosityBlock(), endRun(), initialize(), and readQtResults().