CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Attributes
DQMMessageLogger Class Reference

#include <DQMMessageLogger.h>

Inheritance diagram for DQMMessageLogger:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 Get the analysis. More...
 
 DQMMessageLogger (const edm::ParameterSet &)
 Constructor. More...
 
 ~DQMMessageLogger () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Protected Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Attributes

MonitorElementcategories_errors
 
std::vector< std::string > categories_vector
 
MonitorElementcategories_warnings
 
std::map< std::string, int > categoryECount
 
std::map< std::string, int > categoryMap
 
std::map< std::string, int > categoryWCount
 
std::string directoryName
 
edm::EDGetTokenT< std::vector< edm::ErrorSummaryEntry > > errorSummary_
 
std::string metname
 
std::map< std::string, int > moduleMap
 
MonitorElementmodules_errors
 
MonitorElementmodules_warnings
 
MonitorElementtotal_errors
 
MonitorElementtotal_warnings
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 17 of file DQMMessageLogger.h.

Constructor & Destructor Documentation

◆ DQMMessageLogger()

DQMMessageLogger::DQMMessageLogger ( const edm::ParameterSet parameters)

Constructor.

Definition at line 29 of file DQMMessageLogger.cc.

29  {
30  categories_errors = nullptr;
31  categories_warnings = nullptr;
32  modules_errors = nullptr;
33  modules_warnings = nullptr;
34  total_errors = nullptr;
35  total_warnings = nullptr;
36 
37  //Get from cfg file
38  categories_vector = parameters.getParameter<vector<string> >("Categories");
39  directoryName = parameters.getParameter<string>("Directory");
40  errorSummary_ = consumes<std::vector<edm::ErrorSummaryEntry> >(
41  parameters.getUntrackedParameter<std::string>("errorSummary", "logErrorHarvester"));
42 }

References AlCaHLTBitMon_QueryRunRegistry::string.

◆ ~DQMMessageLogger()

DQMMessageLogger::~DQMMessageLogger ( )
override

Destructor.

Definition at line 44 of file DQMMessageLogger.cc.

44  {
45  // Should the pointers be deleted?
46 }

Member Function Documentation

◆ analyze()

void DQMMessageLogger::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Get the analysis.

Reimplemented from DQMEDAnalyzer.

Definition at line 119 of file DQMMessageLogger.cc.

119  {
120  LogTrace(metname) << "[DQMMessageLogger] Analysis of event # ";
121 
122  // Take the ErrorSummaryEntry container
124  iEvent.getByToken(errorSummary_, errors);
125  // Check that errors is valid
126  if (!errors.isValid()) {
127  return;
128  }
129  // Compare severity level of error with ELseveritylevel instance el : "-e" should be the lowest error
130  ELseverityLevel el(ELseverityLevel::ELsev_error);
131 
132  // Find the total number of errors in iEvent
133  if (errors->empty()) {
134  if (total_errors != nullptr) {
135  total_errors->Fill(0);
136  }
137  if (total_warnings != nullptr) {
138  total_warnings->Fill(0);
139  }
140  } else {
141  int e = 0;
142  int w = 0;
143  for (int i = 0, n = errors->size(); i < n; i++) {
144  if ((*errors)[i].severity.getLevel() < el.getLevel()) {
145  w += (*errors)[i].count;
146  } else {
147  e += (*errors)[i].count;
148  }
149  }
150  if (total_errors != nullptr) {
151  total_errors->Fill(e);
152  }
153  if (total_warnings != nullptr) {
155  }
156  }
157 
158  for (int i = 0, n = errors->size(); i < n; i++) {
159  //cout << "Severity for error/warning: " << (*errors)[i].severity << " " <<(*errors)[i].module << endl;
160 
161  if (!errors->empty()) {
162  // IF THIS IS AN ERROR on the ELseverityLevel SCALE, FILL ERROR HISTS
163  if ((*errors)[i].severity.getLevel() >= el.getLevel()) {
164  if (categories_errors != nullptr) {
165  auto it = categoryMap.find((*errors)[i].category);
166  if (it != categoryMap.end()) {
167  // FILL THE RIGHT BIN
168  categories_errors->Fill((*it).second - 1, (*errors)[i].count);
169  }
170  }
171  // if (categoryECount.size()<=40)
172  // categoryECount[(*errors)[i].category]+=(*errors)[i].count;
173 
174  if (modules_errors != nullptr) {
175  // remove the first part of the module string, what is before ":"
176  string s = (*errors)[i].module;
177  size_t pos = s.find(':');
178  string s_temp = s.substr(pos + 1, s.size());
179  auto it = moduleMap.find(s_temp);
180  if (it != moduleMap.end()) {
181  // FILL THE RIGHT BIN
182  modules_errors->Fill((*it).second - 1, (*errors)[i].count);
183  }
184  }
185  // IF ONLY WARNING, FILL WARNING HISTS
186  } else {
187  if (categories_warnings != nullptr) {
188  auto it = categoryMap.find((*errors)[i].category);
189  if (it != categoryMap.end()) {
190  // FILL THE RIGHT BIN
191  categories_warnings->Fill((*it).second - 1, (*errors)[i].count);
192  }
193  }
194 
195  // if (categoryWCount.size()<=40)
196  // categoryWCount[(*errors)[i].category]+=(*errors)[i].count;
197 
198  if (modules_warnings != nullptr) {
199  // remove the first part of the module string, what is before ":"
200  string s = (*errors)[i].module;
201  size_t pos = s.find(':');
202  string s_temp = s.substr(pos + 1, s.size());
203  auto it = moduleMap.find(s_temp);
204  if (it != moduleMap.end()) {
205  // FILL THE RIGHT BIN
206  modules_warnings->Fill((*it).second - 1, (*errors)[i].count);
207  }
208  }
209  }
210  }
211  }
212 }

References taus_updatedMVAIds_cff::category, MillePedeFileConverter_cfg::e, debug_messages_cfi::errors, edm::ELseverityLevel::getLevel(), mps_fire::i, iEvent, LogTrace, metname, dqmiodumpmetadata::n, alignCSCRings::s, and w.

◆ bookHistograms()

void DQMMessageLogger::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 48 of file DQMMessageLogger.cc.

48  {
49  metname = "errorAnalyzer";
50 
51  // MAKE CATEGORYMAP USING INPUT FROM CFG FILE
52  for (unsigned int i = 0; i < categories_vector.size(); i++) {
53  categoryMap.insert(pair<string, int>(categories_vector[i], i + 1));
54  }
55 
56  // MAKE MODULEMAP
58  using stringvec = vector<std::string>;
59  TNS tns;
60  stringvec const& trigpaths = tns->getTrigPaths();
61 
62  for (auto const& trigpath : trigpaths) {
63  stringvec strings = tns->getTrigPathModules(trigpath);
64 
65  for (auto& k : strings) {
66  moduleMap.insert(pair<string, int>(k, moduleMap.size() + 1));
67  }
68  }
69 
70  // BOOK THE HISTOGRAMS
71  LogTrace(metname) << "[DQMMessageLogger] Parameters initialization";
72 
73  if (!moduleMap.empty()) {
74  ibooker.setCurrentFolder(directoryName + "/Errors");
75  modules_errors = ibooker.book1D("modules_errors", "Errors per module", moduleMap.size(), 0, moduleMap.size());
76  ibooker.setCurrentFolder(directoryName + "/Warnings");
77 
78  modules_warnings = ibooker.book1D("modules_warnings", "Warnings per module", moduleMap.size(), 0, moduleMap.size());
79 
80  for (auto it = moduleMap.begin(); it != moduleMap.end(); ++it) {
81  modules_errors->setBinLabel((*it).second, (*it).first);
82  modules_warnings->setBinLabel((*it).second, (*it).first);
83  }
84  modules_errors->getTH1()->GetXaxis()->LabelsOption("v");
85  modules_warnings->getTH1()->GetXaxis()->LabelsOption("v");
86  }
87 
88  if (!categoryMap.empty()) {
89  ibooker.setCurrentFolder(directoryName + "/Errors");
91  ibooker.book1D("categories_errors", "Errors per category", categoryMap.size(), 0, categoryMap.size());
92  ibooker.setCurrentFolder(directoryName + "/Warnings");
94  ibooker.book1D("categories_warnings", "Warnings per category", categoryMap.size(), 0, categoryMap.size());
95 
96  for (auto it = categoryMap.begin(); it != categoryMap.end(); ++it) {
97  categories_errors->setBinLabel((*it).second, (*it).first);
98  categories_warnings->setBinLabel((*it).second, (*it).first);
99  }
100  categories_warnings->getTH1()->GetXaxis()->LabelsOption("v");
101  categories_errors->getTH1()->GetXaxis()->LabelsOption("v");
102  }
103 
104  // HOW MANY BINS SHOULD THE ERROR HIST HAVE?
105  int nbins = 11;
106  total_warnings = ibooker.book1D("total_warnings", "Total warnings per event", nbins, -0.5, nbins + 0.5);
107  ibooker.setCurrentFolder(directoryName + "/Errors");
108  total_errors = ibooker.book1D("total_errors", "Total errors per event", nbins, -0.5, nbins + 0.5);
109 
110  for (int i = 0; i < nbins; ++i) {
111  stringstream out;
112  out << i;
113  string s = out.str();
114  total_errors->setBinLabel(i + 1, s);
115  total_warnings->setBinLabel(i + 1, s);
116  }
117 }

References dqm::implementation::IBooker::book1D(), mps_fire::i, dqmdumpme::k, LogTrace, metname, LaserClient_cfi::nbins, MillePedeFileConverter_cfg::out, alignCSCRings::s, dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), and nano_cff::strings.

Member Data Documentation

◆ categories_errors

MonitorElement* DQMMessageLogger::categories_errors
private

Definition at line 47 of file DQMMessageLogger.h.

◆ categories_vector

std::vector<std::string> DQMMessageLogger::categories_vector
private

Definition at line 42 of file DQMMessageLogger.h.

◆ categories_warnings

MonitorElement* DQMMessageLogger::categories_warnings
private

Definition at line 48 of file DQMMessageLogger.h.

◆ categoryECount

std::map<std::string, int> DQMMessageLogger::categoryECount
private

Definition at line 40 of file DQMMessageLogger.h.

◆ categoryMap

std::map<std::string, int> DQMMessageLogger::categoryMap
private

Definition at line 38 of file DQMMessageLogger.h.

◆ categoryWCount

std::map<std::string, int> DQMMessageLogger::categoryWCount
private

Definition at line 39 of file DQMMessageLogger.h.

◆ directoryName

std::string DQMMessageLogger::directoryName
private

Definition at line 43 of file DQMMessageLogger.h.

◆ errorSummary_

edm::EDGetTokenT<std::vector<edm::ErrorSummaryEntry> > DQMMessageLogger::errorSummary_
private

Definition at line 44 of file DQMMessageLogger.h.

◆ metname

std::string DQMMessageLogger::metname
private

Definition at line 35 of file DQMMessageLogger.h.

◆ moduleMap

std::map<std::string, int> DQMMessageLogger::moduleMap
private

Definition at line 37 of file DQMMessageLogger.h.

◆ modules_errors

MonitorElement* DQMMessageLogger::modules_errors
private

Definition at line 49 of file DQMMessageLogger.h.

◆ modules_warnings

MonitorElement* DQMMessageLogger::modules_warnings
private

Definition at line 50 of file DQMMessageLogger.h.

◆ total_errors

MonitorElement* DQMMessageLogger::total_errors
private

Definition at line 51 of file DQMMessageLogger.h.

◆ total_warnings

MonitorElement* DQMMessageLogger::total_warnings
private

Definition at line 52 of file DQMMessageLogger.h.

taus_updatedMVAIds_cff.category
category
Definition: taus_updatedMVAIds_cff.py:31
BeamSpotPI::parameters
parameters
Definition: BeamSpotPayloadInspectorHelper.h:30
mps_fire.i
i
Definition: mps_fire.py:428
DQMMessageLogger::metname
std::string metname
Definition: DQMMessageLogger.h:35
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
DQMMessageLogger::errorSummary_
edm::EDGetTokenT< std::vector< edm::ErrorSummaryEntry > > errorSummary_
Definition: DQMMessageLogger.h:44
pos
Definition: PixelAliasList.h:18
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
DQMMessageLogger::modules_warnings
MonitorElement * modules_warnings
Definition: DQMMessageLogger.h:50
edm::Handle
Definition: AssociativeIterator.h:50
nano_cff.strings
strings
Definition: nano_cff.py:26
alignCSCRings.s
s
Definition: alignCSCRings.py:92
errors
Definition: errors.py:1
w
const double w
Definition: UKUtility.cc:23
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
LaserClient_cfi.nbins
nbins
Definition: LaserClient_cfi.py:51
dqmdumpme.k
k
Definition: dqmdumpme.py:60
dqm::impl::MonitorElement::getTH1
virtual TH1 * getTH1()
Definition: MonitorElement.cc:981
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
DQMMessageLogger::total_errors
MonitorElement * total_errors
Definition: DQMMessageLogger.h:51
DQMMessageLogger::moduleMap
std::map< std::string, int > moduleMap
Definition: DQMMessageLogger.h:37
edm::Service
Definition: Service.h:30
iEvent
int iEvent
Definition: GenABIO.cc:224
dqm::impl::MonitorElement::setBinLabel
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)
Definition: MonitorElement.cc:771
DQMMessageLogger::categories_errors
MonitorElement * categories_errors
Definition: DQMMessageLogger.h:47
DQMMessageLogger::total_warnings
MonitorElement * total_warnings
Definition: DQMMessageLogger.h:52
edm::ELseverityLevel
Definition: ELseverityLevel.h:26
DQMMessageLogger::directoryName
std::string directoryName
Definition: DQMMessageLogger.h:43
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
DQMMessageLogger::categoryMap
std::map< std::string, int > categoryMap
Definition: DQMMessageLogger.h:38
DQMMessageLogger::categories_warnings
MonitorElement * categories_warnings
Definition: DQMMessageLogger.h:48
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
DQMMessageLogger::modules_errors
MonitorElement * modules_errors
Definition: DQMMessageLogger.h:49
DQMMessageLogger::categories_vector
std::vector< std::string > categories_vector
Definition: DQMMessageLogger.h:42
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
debug_messages_cfi.errors
errors
Definition: debug_messages_cfi.py:54