1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
#ifndef DQM_L1TMONITORCLIENT_L1TEventInfoClient_H
#define DQM_L1TMONITORCLIENT_L1TEventInfoClient_H
/**
* \class L1TEventInfoClient
*
*
* Description: fill L1 report summary for trigger L1T and emulator L1TEMU DQM.
*
* Implementation:
* <TODO: enter implementation details>
*
* \author: Vasile Mihai Ghete - HEPHY Vienna
*
* Re-designed and fully rewritten class.
* Original version and authors: see CVS history
*
*
*/
// system include files
#include <memory>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "DQMServices/Core/interface/DQMEDHarvester.h"
// forward declarations
// class declaration
class L1TEventInfoClient : public DQMEDHarvester {
public:
/// Constructor
L1TEventInfoClient(const edm::ParameterSet &);
/// Destructor
~L1TEventInfoClient() override;
protected:
void dqmEndLuminosityBlock(DQMStore::IBooker &ibooker,
DQMStore::IGetter &igetter,
const edm::LuminosityBlock &,
const edm::EventSetup &) override;
/// end job
void dqmEndJob(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) override;
private:
/// input parameters
bool m_verbose;
std::string m_monitorDir;
bool m_runInEventLoop;
bool m_runInEndLumi;
bool m_runInEndRun;
bool m_runInEndJob;
std::vector<edm::ParameterSet> m_l1Systems;
std::vector<edm::ParameterSet> m_l1Objects;
std::vector<std::string> m_disableL1Systems;
std::vector<std::string> m_disableL1Objects;
/// private methods
/// initialize properly all elements
void initialize();
/// dump the content of the monitoring elements defined in this module
void dumpContentMonitorElements(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter);
/// book histograms
void book(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter);
/// read quality test results
void readQtResults(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter);
/// number of L1 trigger systems
size_t m_nrL1Systems;
/// number of L1 trigger objects
size_t m_nrL1Objects;
/// total number of quality tests enabled for summary report for L1 trigger systems
/// and L1 trigger objects
size_t m_totalNrQtSummaryEnabled;
std::vector<std::string> m_systemLabel;
std::vector<std::string> m_systemLabelExt;
std::vector<int> m_systemDisable;
std::vector<std::vector<std::string> > m_systemQualityTestName;
std::vector<std::vector<std::string> > m_systemQualityTestHist;
std::vector<std::vector<unsigned int> > m_systemQtSummaryEnabled;
std::vector<int> m_objectDisable;
std::vector<std::string> m_objectLabel;
std::vector<std::string> m_objectFolder;
std::vector<std::vector<std::string> > m_objectQualityTestName;
std::vector<std::vector<std::string> > m_objectQualityTestHist;
std::vector<std::vector<unsigned int> > m_objectQtSummaryEnabled;
/// summary report
Float_t m_reportSummary;
Float_t m_summarySum;
std::vector<int> m_summaryContent;
/// a summary report
MonitorElement *m_meReportSummary;
/// monitor elements to report content for all quality tests
std::vector<MonitorElement *> m_meReportSummaryContent;
/// report summary map
MonitorElement *m_meReportSummaryMap;
};
#endif
|