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 30 of file DQMMessageLogger.cc.

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

References AlCaHLTBitMon_QueryRunRegistry::string.

◆ ~DQMMessageLogger()

DQMMessageLogger::~DQMMessageLogger ( )
override

Destructor.

Definition at line 45 of file DQMMessageLogger.cc.

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

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 120 of file DQMMessageLogger.cc.

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

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 49 of file DQMMessageLogger.cc.

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

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:29
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:25
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:969
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:224
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