43 : m_verbose(parSet.getUntrackedParameter<
bool>(
"verbose",
false)),
44 m_monitorDir(parSet.getUntrackedParameter<
std::
string>(
"monitorDir",
"")),
45 m_runInEventLoop(parSet.getUntrackedParameter<
bool>(
"runInEventLoop",
false)),
46 m_runInEndLumi(parSet.getUntrackedParameter<
bool>(
"runInEndLumi",
false)),
47 m_runInEndRun(parSet.getUntrackedParameter<
bool>(
"runInEndRun",
false)),
48 m_runInEndJob(parSet.getUntrackedParameter<
bool>(
"runInEndJob",
false)),
51 m_disableL1Systems(parSet.getParameter<
std::
vector<
std::
string> >(
"DisableL1Systems")),
52 m_disableL1Objects(parSet.getParameter<
std::
vector<
std::
string> >(
"DisableL1Objects")),
55 m_totalNrQtSummaryEnabled(0) {
84 int totalNrQualityTests = 0;
86 for (std::vector<edm::ParameterSet>::const_iterator itSystem =
m_l1Systems.begin(); itSystem !=
m_l1Systems.end();
92 m_systemDisable.push_back(itSystem->getParameter<
unsigned int>(
"SystemDisable"));
101 std::vector<edm::ParameterSet> qTests = itSystem->getParameter<std::vector<edm::ParameterSet> >(
"QualityTests");
102 size_t qtPerSystem = qTests.size();
104 std::vector<std::string> qtNames;
105 qtNames.reserve(qtPerSystem);
107 std::vector<std::string> qtFullPathHists;
108 qtFullPathHists.reserve(qtPerSystem);
110 std::vector<unsigned int> qtSumEnabled;
111 qtSumEnabled.reserve(qtPerSystem);
113 for (std::vector<edm::ParameterSet>::const_iterator itQT = qTests.begin(); itQT != qTests.end(); ++itQT) {
114 totalNrQualityTests++;
116 qtNames.push_back(itQT->getParameter<
std::string>(
"QualityTestName"));
118 qtFullPathHists.push_back(itQT->getParameter<
std::string>(
"QualityTestHist"));
120 unsigned int qtEnabled = itQT->getParameter<
unsigned int>(
"QualityTestSummaryEnabled");
122 qtSumEnabled.push_back(qtEnabled);
151 for (std::vector<edm::ParameterSet>::const_iterator itObject =
m_l1Objects.begin(); itObject !=
m_l1Objects.end();
155 m_objectDisable.push_back(itObject->getParameter<
unsigned int>(
"ObjectDisable"));
164 std::vector<edm::ParameterSet> qTests = itObject->getParameter<std::vector<edm::ParameterSet> >(
"QualityTests");
165 size_t qtPerObject = qTests.size();
167 std::vector<std::string> qtNames;
168 qtNames.reserve(qtPerObject);
170 std::vector<std::string> qtFullPathHists;
171 qtFullPathHists.reserve(qtPerObject);
173 std::vector<unsigned int> qtSumEnabled;
174 qtSumEnabled.reserve(qtPerObject);
176 for (std::vector<edm::ParameterSet>::const_iterator itQT = qTests.begin(); itQT != qTests.end(); ++itQT) {
177 totalNrQualityTests++;
179 qtNames.push_back(itQT->getParameter<
std::string>(
"QualityTestName"));
181 qtFullPathHists.push_back(itQT->getParameter<
std::string>(
"QualityTestHist"));
183 unsigned int qtEnabled = itQT->getParameter<
unsigned int>(
"QualityTestSummaryEnabled");
185 qtSumEnabled.push_back(qtEnabled);
208 book(ibooker, igetter);
212 std::cout <<
"\n L1TEventInfoClient::endLuminosityBlock\n" << std::endl;
219 book(ibooker, igetter);
224 std::cout <<
"\n L1TEventInfoClient::endRun\n" << std::endl;
230 std::cout <<
"\nSummary report " << std::endl;
241 <<
"\nNo summary content per system and object as filled in histogram.\n " << std::endl;
245 TH2F*
hist =
me->getTH2F();
247 const int nBinsX =
hist->GetNbinsX();
248 const int nBinsY =
hist->GetNbinsY();
251 std::vector<std::vector<int> > meReportSummaryMap(nBinsX, std::vector<int>(nBinsY));
265 <<
m_systemDisable[iSys] <<
" \t" << std::setw(25) <<
" m_summaryContent[" << std::setw(2) << iSys
266 <<
"] = " << meReportSummaryMap[0][iSys] << std::endl;
273 <<
" \t" << std::setw(25) <<
" m_summaryContent[" << std::setw(2) << iMon <<
"] = \t" 281 std::cout <<
"\nQuality test results as filled in " 282 <<
"\n " <<
m_monitorDir <<
"/EventInfo/reportSummaryContents\n" 289 std::cout << std::setw(50) << (*itME)->getName() <<
" \t" << std::setw(25) << (*itME)->getFloatValue() << std::endl;
325 for (std::vector<std::string>::const_iterator itQtName = sysQtName.begin(); itQtName != sysQtName.end();
343 for (std::vector<std::string>::const_iterator itQtName = objQtName.begin(); itQtName != objQtName.end();
379 for (
int iBin = 0; iBin < nBinsY; ++iBin) {
418 for (std::vector<std::string>::const_iterator itQtName = sysQtName.begin(); itQtName != sysQtName.end();
425 const std::vector<QReport*> qtVec = qHist->
getQReports();
428 std::cout <<
"\nNumber of quality tests " 429 <<
" for histogram " << sysQtHist[iSysQTest] <<
": " << qtVec.size() <<
"\n" 435 const float sysQtResult = sysQReport->
getQTresult();
436 const int sysQtStatus = sysQReport->
getStatus();
441 << (*itQtName) <<
" quality test:" 442 <<
"\n result: " << sysQtResult <<
"\n status: " << sysQtStatus
443 <<
"\n message: " << sysQtMessage <<
"\n" 444 <<
"\nFilling m_meReportSummaryContent[" << iAllQTest <<
"] with value " << sysQtResult <<
"\n" 452 if (sysQtSummaryEnabled[iSysQTest]) {
466 if (sysQtSummaryEnabled[iSysQTest]) {
475 std::cout <<
"\n" << (*itQtName) <<
" quality test not found\n" << std::endl;
485 if (sysQtSummaryEnabled[iSysQTest]) {
494 std::cout <<
"\nHistogram " << sysQtHist[iSysQTest] <<
" not found\n" << std::endl;
518 for (std::vector<std::string>::const_iterator itQtName = objQtName.begin(); itQtName != objQtName.end();
525 const std::vector<QReport*> qtVec = qHist->
getQReports();
528 std::cout <<
"\nNumber of quality tests " 529 <<
" for histogram " << objQtHist[iObjQTest] <<
": " << qtVec.size() <<
"\n" 535 const float objQtResult = objQReport->
getQTresult();
536 const int objQtStatus = objQReport->
getStatus();
541 << (*itQtName) <<
" quality test:" 542 <<
"\n result: " << objQtResult <<
"\n status: " << objQtStatus
543 <<
"\n message: " << objQtMessage <<
"\n" 544 <<
"\nFilling m_meReportSummaryContent[" << iAllQTest <<
"] with value " << objQtResult <<
"\n" 552 if (objQtSummaryEnabled[iObjQTest]) {
566 if (objQtSummaryEnabled[iObjQTest]) {
575 std::cout <<
"\n" << (*itQtName) <<
" quality test not found\n" << std::endl;
585 if (objQtSummaryEnabled[iObjQTest]) {
594 std::cout <<
"\nHistogram " << objQtHist[iObjQTest] <<
" not found\n" << std::endl;
std::vector< std::vector< std::string > > m_objectQualityTestHist
std::vector< std::vector< std::string > > m_systemQualityTestName
virtual void setTitle(const std::string &title)
set (ie. change) histogram/profile title
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
void initialize()
private methods
std::vector< edm::ParameterSet > m_l1Objects
std::vector< int > m_objectDisable
std::vector< edm::ParameterSet > m_l1Systems
virtual void setCurrentFolder(std::string const &fullpath)
L1TEventInfoClient(const edm::ParameterSet &)
Constructor.
std::vector< std::string > m_systemLabel
float getQTresult() const
get test result i.e. prob value
std::vector< MonitorElementData::QReport * > getQReports() const
get map of QReports
void dqmEndJob(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) override
end job
std::vector< std::string > m_systemLabelExt
void book(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
book histograms
MonitorElement * m_meReportSummaryMap
report summary map
std::vector< std::vector< std::string > > m_systemQualityTestHist
std::vector< std::vector< unsigned int > > m_objectQtSummaryEnabled
std::vector< MonitorElement * > m_meReportSummaryContent
monitor elements to report content for all quality tests
void readQtResults(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
read quality test results
Float_t m_reportSummary
summary report
MonitorElement * m_meReportSummary
a summary report
const MonitorElementData::QReport * getQReport(const std::string &qtname) const
get QReport corresponding to <qtname> (null pointer if QReport does not exist)
std::vector< std::vector< unsigned int > > m_systemQtSummaryEnabled
size_t m_totalNrQtSummaryEnabled
static const int DISABLED
~L1TEventInfoClient() override
Destructor.
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
const std::string & getMessage() const
get message attached to test
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
std::vector< int > m_systemDisable
std::vector< std::string > m_objectLabel
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
std::vector< std::string > m_disableL1Objects
virtual MonitorElement * get(std::string const &fullpath) const
std::vector< std::string > m_disableL1Systems
std::vector< std::vector< std::string > > m_objectQualityTestName
size_t m_nrL1Objects
number of L1 trigger objects
const std::string & getName() const
get name of ME
void dqmEndLuminosityBlock(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter, const edm::LuminosityBlock &, const edm::EventSetup &) override
size_t m_nrL1Systems
number of L1 trigger systems
int getStatus() const
get test status
std::vector< int > m_summaryContent
void dumpContentMonitorElements(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
dump the content of the monitoring elements defined in this module
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
bool m_verbose
input parameters