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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
#ifndef DQM_L1TMONITORCLIENT_L1TEMTFEventInfoClient_H
#define DQM_L1TMONITORCLIENT_L1TEMTFEventInfoClient_H
/**
* \class L1TEMTFEventInfoClient
*
*
* 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
*
*
*/
// user include files
#include "FWCore/Framework/interface/MakerMacros.h"
#include "DQMServices/Core/interface/DQMEDHarvester.h"
#include "DQMServices/Core/interface/DQMStore.h"
// forward declarations
// class declaration
class L1TEMTFEventInfoClient : public DQMEDHarvester {
public:
/// Constructor
L1TEMTFEventInfoClient(const edm::ParameterSet &);
/// Destructor
~L1TEMTFEventInfoClient() 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;
std::string m_histDir;
bool m_runInEventLoop;
bool m_runInEndLumi;
bool m_runInEndRun;
bool m_runInEndJob;
std::vector<edm::ParameterSet> m_trackObjects;
std::vector<edm::ParameterSet> m_hitObjects;
std::vector<std::string> m_disableTrackObjects;
std::vector<std::string> m_disableHitObjects;
std::vector<edm::ParameterSet> m_noisyStrip;
std::vector<edm::ParameterSet> m_deadStrip;
std::vector<std::string> m_disableNoisyStrip;
std::vector<std::string> m_disableDeadStrip;
/// 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_nrTrackObjects;
/// number of L1 trigger objects
size_t m_nrHitObjects;
/// number of L1 trigger noisy strips
size_t m_nrNoisyStrip;
/// number of L1 trigger dead strips
size_t m_nrDeadStrip;
/// 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_trackLabel;
std::vector<std::string> m_trackLabelExt;
std::vector<int> m_trackDisable;
std::vector<std::vector<std::string> > m_trackQualityTestName;
std::vector<std::vector<std::string> > m_trackQualityTestHist;
std::vector<std::vector<unsigned int> > m_trackQtSummaryEnabled;
std::vector<int> m_hitDisable;
std::vector<std::string> m_hitLabel;
std::vector<std::string> m_hitFolder;
std::vector<std::vector<std::string> > m_hitQualityTestName;
std::vector<std::vector<std::string> > m_hitQualityTestHist;
std::vector<std::vector<unsigned int> > m_hitQtSummaryEnabled;
std::vector<int> m_noisyDisable;
std::vector<std::string> m_noisyLabel;
std::vector<std::string> m_noisyFolder;
std::vector<std::vector<std::string> > m_noisyQualityTestName;
std::vector<std::vector<std::string> > m_noisyQualityTestHist;
std::vector<std::vector<unsigned int> > m_noisyQtSummaryEnabled;
std::vector<int> m_deadDisable;
std::vector<std::string> m_deadLabel;
std::vector<std::string> m_deadFolder;
std::vector<std::vector<std::string> > m_deadQualityTestName;
std::vector<std::vector<std::string> > m_deadQualityTestHist;
std::vector<std::vector<unsigned int> > m_deadQtSummaryEnabled;
/// 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;
MonitorElement *m_meReportSummaryMap_chamberStrip;
};
#endif
|