29 LogVerbatim(
"DTDQM|DTMonitorClient|DTSummaryClients") <<
"[DTSummaryClients]: Constructor";
37 LogVerbatim (
"DTDQM|DTMonitorClient|DTSummaryClients") <<
"DTSummaryClients: analyzed " <<
nevents <<
" events";
43 LogVerbatim(
"DTDQM|DTMonitorClient|DTSummaryClients") <<
"[DTSummaryClients]: BeginRun";
46 dbe->setCurrentFolder(
"DT/EventInfo");
55 dbe->setCurrentFolder(
"DT/EventInfo/reportSummaryContents");
57 for(
int wheel = -2; wheel != 3; ++wheel) {
59 streams <<
"DT_Wheel" << wheel;
60 string meName = streams.str();
74 LogVerbatim (
"DTDQM|DTMonitorClient|DTSummaryClients") <<
"[DTSummaryClients]: endJob";
81 LogVerbatim (
"DTDQM|DTMonitorClient|DTSummaryClients") <<
"[DTSummaryClients]: endRun";
90 LogVerbatim(
"DTDQM|DTMonitorClient|DTSummaryClients") <<
"[DTSummaryClients] Analyze #Run: " <<
event.id().run()
91 <<
" #Event: " <<
event.id().event()
92 <<
" LS: " <<
event.luminosityBlock()
100 LogVerbatim(
"DTDQM|DTMonitorClient|DTSummaryClients")
101 <<
"[DTSummaryClients]: End of LS transition, performing the DQM client operation" << endl;
106 for(
int ii = 0;
ii != 5; ++
ii) {
110 bool noDTData =
false;
114 MonitorElement * dataIntegritySummary =
dbe->get(
"DT/00-DataIntegrity/DataIntegritySummary");
115 if(dataIntegritySummary != 0) {
116 int nDisabledFED = 0;
117 for(
int wheel = 1; wheel != 6; ++wheel) {
118 int nDisablesROS = 0;
119 for(
int sect = 1; sect != 13; ++sect) {
124 if(nDisablesROS == 12) {
130 if(nDisabledFED == 5) {
136 LogError(
"DTDQM|DTMonitorClient|DTSummaryClients")
137 <<
"Data Integrity Summary not found with name: DT/00-DataIntegrity/DataIntegritySummary" <<endl;
140 double totalStatus = 0;
142 bool occupancyFound =
true;
146 for(
int wheel=-2; wheel<=2; wheel++){
149 str <<
"DT/01-Digi/OccupancySummary_W" << wheel;
151 if(wheelOccupancySummary != 0) {
152 int nFailingChambers = 0;
153 for(
int sector=1; sector<=12; sector++){
156 LogTrace(
"DTDQM|DTMonitorClient|DTSummaryClients")
157 <<
"Wheel: " << wheel <<
" Stat: " <<
station <<
" Sect: " << sector <<
" status: " << chamberStatus << endl;
158 if(chamberStatus != 4) {
163 LogTrace(
"DTDQM|DTMonitorClient|DTSummaryClients") <<
" sector (" << sector <<
") status on the map is: "
169 totalStatus += (48.-nFailingChambers)/48.;
171 occupancyFound =
false;
172 LogError(
"DTDQM|DTMonitorClient|DTSummaryClients")<<
" Wheel Occupancy Summary not found with name: " << str.str() << endl;
177 if(occupancyFound && !noDTData)
DTSummaryClients(const edm::ParameterSet &ps)
Constructor.
MonitorElement * summaryReport
MonitorElement * summaryReportMap
void endLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
DQM Client Diagnostic.
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
void beginRun(edm::Run const &run, edm::EventSetup const &eSetup)
BeginRun.
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
void endRun(edm::Run const &run, edm::EventSetup const &eSetup)
EndRun.
double getBinContent(int binx) const
get content of bin (1-D)
std::vector< MonitorElement * > theSummaryContents
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
virtual ~DTSummaryClients()
Destructor.