CMS 3D CMS Logo

CSCDQM_Configuration.h
Go to the documentation of this file.
1 /*
2  * =====================================================================================
3  *
4  * Filename: Configuration.h
5  *
6  * Description: CSCDQM Configuration parameter storage
7  *
8  * Version: 1.0
9  * Created: 10/03/2008 10:26:04 AM
10  * Revision: none
11  * Compiler: gcc
12  *
13  * Author: Valdas Rapsevicius, valdas.rapsevicius@cern.ch
14  * Company: CERN, CH
15  *
16  * =====================================================================================
17  */
18 
19 #ifndef CSCDQM_Configuration_H
20 #define CSCDQM_Configuration_H
21 
22 #include <string>
23 #include <sstream>
24 #include <functional>
25 
26 #include <xercesc/parsers/XercesDOMParser.hpp>
27 #include <xercesc/dom/DOMNodeList.hpp>
28 #include <xercesc/dom/DOMElement.hpp>
29 #include <xercesc/dom/DOMComment.hpp>
30 #include <xercesc/sax/ErrorHandler.hpp>
31 #include <xercesc/sax/SAXParseException.hpp>
32 #include <xercesc/dom/DOMImplementation.hpp>
33 #include <xercesc/framework/StdOutFormatTarget.hpp>
34 #include <xercesc/dom/DOM.hpp>
35 
36 #include <boost/multi_index_container.hpp>
37 #include <boost/multi_index/member.hpp>
38 #include <boost/multi_index/composite_key.hpp>
39 #include <boost/multi_index/ordered_index.hpp>
40 #include "boost/tuple/tuple.hpp"
41 
42 #include <boost/preprocessor/tuple/elem.hpp>
43 #include <boost/preprocessor/seq/for_each_i.hpp>
44 #include <boost/preprocessor/stringize.hpp>
45 #include <boost/preprocessor/cat.hpp>
46 #include <boost/preprocessor/comparison/equal.hpp>
47 
48 #include <boost/timer.hpp>
49 
51 #ifdef DQMGLOBAL
52 
54 
55 #endif
56 
58 #include "CSCDQM_Exception.h"
59 #include "CSCDQM_Utility.h"
60 #include "CSCDQM_Logger.h"
61 
63 #define CONFIG_PARAMETERS_SEQ_LEN 4
64 
69 #define CONFIG_PARAMETERS_SEQ \
70  \
71  ((bool, PROCESS_DDU, true, "enter DDU (and latter Chamber) sections (EventProcessor flag)"))( \
72  (bool, PROCESS_CSC, true, "enter Chamber section (EventProcessor flag)"))( \
73  (bool, PROCESS_EFF_HISTOS, true, "calculate efficiency histograms (Dispatcher flag)"))( \
74  (bool, PROCESS_EFF_PARAMETERS, true, "calculate efficiency parameters (EventProcessor flag)"))( \
75  (bool, BINCHECKER_CRC_ALCT, false, "check ALCT CRC (CSCDCCExaminer flag)"))( \
76  (bool, BINCHECKER_CRC_CLCT, false, "check CLCT CRC (CSCDCCExaminer flag)"))( \
77  (bool, BINCHECKER_CRC_CFEB, false, "check CFEB CRC (CSCDCCExaminer flag)"))( \
78  (bool, BINCHECKER_MODE_DDU, true, "set DDU mode (CSCDCCExaminer flag)"))( \
79  (bool, BINCHECKER_OUTPUT, false, "print 1 and 2 output (CSCDCCExaminer flag)"))( \
80  (bool, \
81  FRAEFF_AUTO_UPDATE, \
82  false, \
83  "start fractional and efficiency histogram update automatically (Dispatcher flag)"))( \
84  (bool, \
85  FRAEFF_SEPARATE_THREAD, \
86  false, \
87  "start fractional and efficiency histogram update on separate thread (EventProcessor flag)"))( \
88  (bool, PRINT_STATS_ON_EXIT, true, "print statistics on exit (destruction)"))( \
89  (bool, IN_FULL_STANDBY, true, "full detector is in standby mode from the beginning of the run"))( \
90  (std::string, BOOKING_XML_FILE, "", "histogram description (booking) file in XML format (Collection)"))( \
91  (std::string, FOLDER_EMU, "", "root file folder name to be used for EMU histograms (EventProcessor)"))( \
92  (std::string, FOLDER_DDU, "", "root file folder name to be used for DDU histograms (EventProcessor)"))( \
93  (std::string, FOLDER_CSC, "", "root file folder name to be used for CSC histograms (EventProcessor)"))( \
94  (std::string, FOLDER_PAR, "", "root file folder name to be used for parameters (EventProcessor)"))(( \
95  unsigned int, DDU_CHECK_MASK, 0xFFFFFFFF, "mask for cumulative EmuFileReader DDU error flags (EventProcessor)"))( \
96  (unsigned int, DDU_BINCHECK_MASK, 0x02080016, "mask for DDU level examiner errors (CSCDCCExaminer)"))( \
97  (unsigned int, BINCHECK_MASK, 0xFFFFFFFF, "mask for chamber level examiner errors (CSCDCCExaminer)"))( \
98  (unsigned int, \
99  FRAEFF_AUTO_UPDATE_START, \
100  5, \
101  "event number to start automatic fractional and efficiency histogram updates from (Dispatcer)"))( \
102  (unsigned int, \
103  FRAEFF_AUTO_UPDATE_FREQ, \
104  1, \
105  "frequency in events to perform automatic fractional and efficiency histogram updates (Dispatcher)"))(( \
106  double, EFF_COLD_THRESHOLD, 0.1, "threshold in fraction to check for cold (not reporting) HW (EventProcessor)"))( \
107  (double, EFF_COLD_SIGFAIL, 5.0, "statistical significance for cold (not reporting) HW (EventProcessor)"))( \
108  (double, EFF_HOT_THRESHOLD, 0.1, "threshold in fraction to check for hot HW (EventProcessor)"))( \
109  (double, EFF_HOT_SIGFAIL, 5.0, "statistical significance for hot HW (EventProcessor)"))( \
110  (double, EFF_ERR_THRESHOLD, 0.1, "threshold in fraction to check for errors in HW (EventProcessor)"))( \
111  (double, EFF_ERR_SIGFAIL, 5.0, "statistical significance for errors in HW (EventProcessor)"))( \
112  (double, \
113  EFF_NODATA_THRESHOLD, \
114  0.1, \
115  "threshold in fraction to check for not reporting elements in HW (EventProcessor)"))( \
116  (double, EFF_NODATA_SIGFAIL, 5.0, "statistical significance for not reportingelements in HW (EventProcessor)"))( \
117  (unsigned int, EVENTS_ECHO, 1000, "frequency in events to print echo message (EventProcessor)"))( \
118  (std::string, FOLDER_FED, "", "root file folder name to be used for FED histograms (EventProcessor)"))( \
119  (bool, PREBOOK_ALL_HISTOS, true, "pre-book all FED, DDU, CSC histogragrams before run begins"))
120 
126 #define CONFIG_PARAMETER_DEFINE_MACRO(r, data, i, elem) \
127  BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 0, elem) BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem);
128 
130 #define CONFIG_PARAMETER_DEFAULT_MACRO(r, data, i, elem) \
131  BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem) = BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 2, elem);
132 
134 #define CONFIG_PARAMETER_GETTER_MACRO(r, data, i, elem) \
135  const BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 0, elem) \
136  BOOST_PP_CAT(get, BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem))() const { \
137  return BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem); \
138  }
139 
141 #define CONFIG_PARAMETER_SETTER_MACRO(r, data, i, elem) \
142  void BOOST_PP_CAT(set, BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem))( \
143  BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 0, elem) p) { \
144  BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem) = p; \
145  }
146 
147 #ifdef DQMGLOBAL
148 
150 #define CONFIG_PARAMETER_LOADPS_MACRO(r, data, i, elem) \
151  BOOST_PP_CAT(set, BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem)) \
152  (ps.getUntrackedParameter<BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 0, elem)>( \
153  BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem)), \
154  BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 2, elem)));
155 
156 #endif
157 
158 #ifdef DQMLOCAL
159 
161 #define CONFIG_PARAMETER_LOADXML_MACRO(r, data, i, elem) \
162  if (nodeName.compare(BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem))) == 0) { \
163  stm >> BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem); \
164  continue; \
165  }
166 
168 #define CONFIG_PARAMETER_PRINTXML_MACRO(r, data, i, elem) \
169  { \
170  DOMComment* comment = \
171  doc->createComment(XERCES_TRANSCODE(BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 3, elem))); \
172  DOMElement* el = doc->createElement( \
173  XERCES_TRANSCODE(BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem)))); \
174  std::string value = toString(config.BOOST_PP_CAT(get, BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem))()); \
175  DOMText* tdata = doc->createTextNode(XERCES_TRANSCODE(value.c_str())); \
176  el->appendChild(tdata); \
177  rootElem->appendChild(comment); \
178  rootElem->appendChild(el); \
179  }
180 
181 #endif
182 
183 namespace cscdqm {
184 
186  struct MOFilterItem {
188  TPRegexp pattern;
190  bool include;
192  MOFilterItem(const std::string pattern_, const bool include_) : pattern(pattern_.c_str()), include(include_) {}
193  };
194 
204  };
205 
207  typedef std::map<ChamberCounterType, uint32_t> ChamberCounterMapType;
208 
214  ChamberCounterKeyType(const HwId& crateId_, const HwId& dmbId_, const ChamberCounterMapType& c_)
215  : crateId(crateId_), dmbId(dmbId_), counters(c_) {}
216  };
217 
219  typedef boost::multi_index_container<
220  ChamberCounterKeyType,
221  boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::composite_key<
222  ChamberCounterKeyType,
223  boost::multi_index::member<ChamberCounterKeyType, HwId, &ChamberCounterKeyType::crateId>,
224  boost::multi_index::member<ChamberCounterKeyType, HwId, &ChamberCounterKeyType::dmbId> > > > >
226 
232  private:
233  unsigned short printStatsLocal;
234 
236  std::vector<MOFilterItem> MOFilterItems;
237 
239  BOOST_PP_SEQ_FOR_EACH_I(CONFIG_PARAMETER_DEFINE_MACRO, _, CONFIG_PARAMETERS_SEQ)
240 
241 
245  void init() {
247  BOOST_PP_SEQ_FOR_EACH_I(CONFIG_PARAMETER_DEFAULT_MACRO, _, CONFIG_PARAMETERS_SEQ)
248  reset();
249  }
250 
251  public:
258 
263  std::function<bool(const HistoId id, const HwId& id1, const HwId& id2, const HwId& id3, MonitorObject*& mo)>
267  std::function<bool(unsigned int&, unsigned int&, unsigned int&)> fnNextBookedCSC;
268  std::function<bool(unsigned int&, unsigned int&)> fnIsBookedCSC;
271 
274 
276  std::function<bool(const unsigned int, const unsigned int, CSCDetId&)> fnGetCSCDetId;
277 
279  BOOST_PP_SEQ_FOR_EACH_I(CONFIG_PARAMETER_GETTER_MACRO, _, CONFIG_PARAMETERS_SEQ)
280 
281 
282  BOOST_PP_SEQ_FOR_EACH_I(CONFIG_PARAMETER_SETTER_MACRO, _, CONFIG_PARAMETERS_SEQ)
283 
284 
288  init();
289  printStatsLocal = 0;
290  }
291 
296  Configuration(const bool printStats) {
297  init();
298  if (printStats) {
299  printStatsLocal = 1;
300  } else {
301  printStatsLocal = 2;
302  }
303  }
304 
309  if ((PRINT_STATS_ON_EXIT && printStatsLocal == 0) || printStatsLocal == 1) {
310  printStats();
311  }
312  }
313 
314 #ifdef DQMLOCAL
315 
321  void load(const std::string& configFile) {
323 
324  {
325  XercesDOMParser parser;
326 
328  parser.setErrorHandler(&eh);
329 
330  parser.parse(configFile.c_str());
331  DOMDocument* doc = parser.getDocument();
332  DOMNode* docNode = (DOMNode*)doc->getDocumentElement();
333 
334  DOMNodeList* itemList = docNode->getChildNodes();
335  for (XMLSize_t i = 0; i < itemList->getLength(); i++) {
336  DOMNode* node = itemList->item(i);
337  if (node->getNodeType() != DOMNode::ELEMENT_NODE) {
338  continue;
339  }
340 
341  std::string nodeName = XMLString::transcode(node->getNodeName());
342  std::string value = XMLString::transcode(node->getTextContent());
343  std::istringstream stm(value);
344 
345  BOOST_PP_SEQ_FOR_EACH_I(CONFIG_PARAMETER_LOADXML_MACRO, _, CONFIG_PARAMETERS_SEQ)
346 
347  if (nodeName.compare("MO_FILTER") == 0) {
348  DOMNodeList* filterList = node->getChildNodes();
349  for (XMLSize_t j = 0; j < filterList->getLength(); j++) {
350  DOMNode* filter = filterList->item(j);
351  if (filter->getNodeType() != DOMNode::ELEMENT_NODE) {
352  continue;
353  }
354  std::string filterName = XMLString::transcode(filter->getNodeName());
355  std::string filterValue = XMLString::transcode(filter->getTextContent());
356  MOFilterItems.insert(MOFilterItems.end(),
357  MOFilterItem(filterValue, (filterName.compare("INCLUDE") == 0)));
358  }
359  }
360  }
361  }
362 
364  }
365 
371  static void printXML(const Configuration& config) {
373 
374  DOMImplementation* domImpl = DOMImplementationRegistry::getDOMImplementation(XERCES_TRANSCODE("core"));
375  DOMDocument* doc = domImpl->createDocument(0, XERCES_TRANSCODE("processor_configuration"), 0);
376  DOMElement* rootElem = doc->getDocumentElement();
377 
378  BOOST_PP_SEQ_FOR_EACH_I(CONFIG_PARAMETER_PRINTXML_MACRO, _, CONFIG_PARAMETERS_SEQ)
379 
380  DOMLSSerializer* ser = domImpl->createLSSerializer();
381  if (ser->getDomConfig()->canSetParameter(XMLUni::fgDOMWRTFormatPrettyPrint, true)) {
382  ser->getDomConfig()->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint, true);
383  }
384  XMLFileErrorHandler eh;
385  ser->setErrorHandler((DOMErrorHandler*)&eh);
386  ser->writeNode(new StdOutFormatTarget(), *doc);
387 
388  doc->release();
390  }
391 
392 #endif
393 
394 #ifdef DQMGLOBAL
395 
401  void load(const edm::ParameterSet& ps) {
402  BOOST_PP_SEQ_FOR_EACH_I(CONFIG_PARAMETER_LOADPS_MACRO, _, CONFIG_PARAMETERS_SEQ)
403  std::vector<std::string> moFilter = ps.getUntrackedParameter<std::vector<std::string> >("MO_FILTER");
404  for (std::vector<std::string>::iterator it = moFilter.begin(); it != moFilter.end(); it++) {
405  std::string f = *it;
406  if (!Utility::regexMatch("^[-+]/.*/$", f)) {
407  LOG_WARN << "MO_FILTER item " << f << " does not recognized to be a valid one. Skipping...";
408  continue;
409  }
410  bool include = Utility::regexMatch("^[+]", f);
411  Utility::regexReplace("^./(.*)/$", f, "$1");
412  MOFilterItems.insert(MOFilterItems.end(), MOFilterItem(f, include));
413  }
414  }
415 
416 #endif
417 
422  private:
424  boost::timer globalTimer;
425 
427  boost::timer eventTimer;
428 
430  boost::timer fraTimer;
431 
433  boost::timer effTimer;
434 
436  double eventTimeSum;
437 
439  double fraTimeSum;
440 
442  double effTimeSum;
443 
444  public:
446 #define STATFIELD(caption, value, units) \
447  logger << std::setfill(' '); \
448  logger << std::setiosflags(std::ios::right) << std::setw(25) << caption << " : "; \
449  logger << std::setiosflags(std::ios::right) << std::setw(12); \
450  if (((double)value) < 0) { \
451  logger << "NA"; \
452  } else { \
453  logger << value; \
454  } \
455  logger << std::setiosflags(std::ios::left) << std::setw(2) << units; \
456  logger << std::endl;
457 
459 #define SEPFIELD \
460  logger << std::setfill('-'); \
461  logger << std::setw(25) << ""; \
462  logger << std::setw(10) << ""; \
463  logger << std::setw(2) << ""; \
464  logger << std::endl;
465 
470  void printStats() {
471  double allTime = globalTimer.elapsed();
472  LogInfo logger;
473  logger << std::endl;
474 
475  STATFIELD("Events processed", nEvents, "")
476  STATFIELD("Bad events", nEventsBad, "")
477  STATFIELD("Good events", nEventsGood, "")
478  STATFIELD("CSC DCC events", nEventsCSC, "")
479  STATFIELD("Unpacked CSCs", nUnpackedCSC, "")
480 
481  SEPFIELD
482 
483  STATFIELD("All event time", eventTimeSum, "s")
484  double eventTimeAverage = (nEvents > 0 ? eventTimeSum / nEvents : -1.0);
485  STATFIELD("Avg. event time", eventTimeAverage, "s")
486  double eventRateAverage = (eventTimeSum > 0 ? nEvents / eventTimeSum : -1.0);
487  STATFIELD("Avg. event rate", eventRateAverage, "Hz")
488  double chamberRateAverage = (eventTimeSum > 0 ? nUnpackedCSC / eventTimeSum : -1.0);
489  STATFIELD("Avg. chamber rate", chamberRateAverage, "Hz")
490 
491  SEPFIELD
492 
493  STATFIELD("All fra update time", fraTimeSum, "s")
494  STATFIELD("All fra update count", fraCount, "")
495  double fraTimeAverage = (fraCount > 0 ? fraTimeSum / fraCount : -1.0);
496  STATFIELD("Avg. fra update time", fraTimeAverage, "s")
497 
498  SEPFIELD
499 
500  STATFIELD("All eff update time", effTimeSum, "s")
501  STATFIELD("All eff update count", effCount, "")
502  double effTimeAverage = (effCount > 0 ? effTimeSum / effCount : -1.0);
503  STATFIELD("Avg. eff update time", effTimeAverage, "s")
504 
505  SEPFIELD
506 
507  STATFIELD("All time", allTime, "s")
508  double allTimeAverage = (nEvents > 0 ? allTime / nEvents : -1.0);
509  STATFIELD("Avg. event all time", allTimeAverage, "s")
510  double allRateAverage = (allTime > 0 ? nEvents / allTime : -1.0);
511  STATFIELD("Avg. event all rate", allRateAverage, "Hz")
512  double chamberAllRateAverage = (allTime > 0 ? nUnpackedCSC / allTime : -1.0);
513  STATFIELD("Avg. chamber all rate", chamberAllRateAverage, "Hz")
514  }
515 
516 #undef STATFIELD
517 #undef SEPFIELD
518 
524  void eventProcessTimer(const bool start) {
525  if (start) {
526  eventTimer.restart();
527  } else {
528  eventTimeSum += eventTimer.elapsed();
529  }
530  }
531 
537  void updateFraTimer(const bool start) {
538  if (start) {
539  fraTimer.restart();
540  } else {
541  fraTimeSum += fraTimer.elapsed();
542  fraCount++;
543  }
544  }
545 
551  void updateEffTimer(const bool start) {
552  if (start) {
553  effTimer.restart();
554  } else {
555  effTimeSum += effTimer.elapsed();
556  effCount++;
557  }
558  }
559 
565  const bool needBookMO(const std::string name) const {
566  bool result = true;
567  for (unsigned int i = 0; i < MOFilterItems.size(); i++) {
568  const MOFilterItem* filter = &MOFilterItems.at(i);
569  if (Utility::regexMatch(filter->pattern, name))
570  result = filter->include;
571  }
572  return result;
573  }
574 
579  public:
584  void reset() {
585  nEvents = 0;
586  nEventsBad = 0;
587  nEventsGood = 0;
588  nEventsCSC = 0;
589  nUnpackedCSC = 0;
590  fraCount = 0;
591  effCount = 0;
592  eventTimeSum = 0.0;
593  fraTimeSum = 0.0;
594  effTimeSum = 0.0;
595  }
596 
601  const unsigned long getNEvents() const { return nEvents; }
602  const unsigned long getNEventsBad() const { return nEventsBad; }
603  const unsigned long getNEventsGood() const { return nEventsGood; }
604  const unsigned long getNEventsCSC() const { return nEventsCSC; }
605  const unsigned long getNUnpackedCSC() const { return nUnpackedCSC; }
606 
611  void incNEvents() {
612  nEvents++;
613  if (getEVENTS_ECHO() > 0) {
614  if (getNEvents() % getEVENTS_ECHO() == 0) {
615  LOG_INFO << "(echo) Events processed: " << std::setw(12) << getNEvents();
616  }
617  }
618  }
619  void incNEventsBad() { nEventsBad++; }
621  void incNEventsCSC() { nEventsCSC++; }
623 
631  void incChamberCounter(const ChamberCounterType counter, const HwId crateId, const HwId dmbId) {
632  setChamberCounterValue(counter, crateId, dmbId, getChamberCounterValue(counter, crateId, dmbId) + 1);
633  }
634 
644  const HwId crateId,
645  const HwId dmbId,
646  const uint32_t value) {
647  ChamberMapCounterMapType::iterator it = chamberCounters.find(boost::make_tuple(crateId, dmbId));
648  if (it == chamberCounters.end()) {
649  it = chamberCounters.insert(chamberCounters.end(),
650  ChamberCounterKeyType(crateId, dmbId, ChamberCounterMapType()));
651  }
652  ChamberCounterMapType* cs = const_cast<ChamberCounterMapType*>(&it->counters);
653  ChamberCounterMapType::iterator itc = cs->find(counter);
654  if (itc == cs->end()) {
655  cs->insert(std::make_pair(counter, value));
656  } else {
657  itc->second = value;
658  }
659  }
660 
670  const ChamberCounterType counter_to,
671  const HwId crateId,
672  const HwId dmbId) {
673  setChamberCounterValue(counter_from, crateId, dmbId, getChamberCounterValue(counter_from, crateId, dmbId));
674  }
675 
684  const HwId crateId,
685  const HwId dmbId) const {
686  ChamberMapCounterMapType::iterator it = chamberCounters.find(boost::make_tuple(crateId, dmbId));
687  if (it == chamberCounters.end())
688  return 0;
689  ChamberCounterMapType::const_iterator itc = it->counters.find(counter);
690  if (itc == it->counters.end())
691  return 0;
692  return itc->second;
693  }
694 
695  private:
701  unsigned long nEvents;
702 
704  unsigned long nEventsBad;
705 
707  unsigned long nEventsGood;
708 
710  unsigned long nEventsCSC;
711 
713  unsigned long nUnpackedCSC;
714 
716  unsigned long fraCount;
717 
719  unsigned long effCount;
720 
723  };
724 
725 } // namespace cscdqm
726 
727 #undef CONFIG_PARAMETERS_SEQ_LEN
728 #undef CONFIG_PARAMETERS_SEQ
729 #undef CONFIG_PARAMETER_DEFINE_MACRO
730 #undef CONFIG_PARAMETER_DEFAULT_MACRO
731 #undef CONFIG_PARAMETER_GETTER_MACRO
732 #undef CONFIG_PARAMETER_SETTER_MACRO
733 #undef CONFIG_PARAMETER_LOADPS_MACRO
734 #undef CONFIG_PARAMETER_LOADXML_MACRO
735 #undef CONFIG_PARAMETER_PRINTXML_MACRO
736 
737 #endif
cscdqm::Configuration::fnIsBookedCSC
std::function< bool(unsigned int &, unsigned int &)> fnIsBookedCSC
Definition: CSCDQM_Configuration.h:268
cscdqm::Configuration::nEventsCSC
unsigned long nEventsCSC
Definition: CSCDQM_Configuration.h:710
cscdqm::Configuration::incNEventsBad
void incNEventsBad()
Definition: CSCDQM_Configuration.h:619
CSCDQM_Logger.h
cscdqm::Configuration::printStatsLocal
unsigned short printStatsLocal
Definition: CSCDQM_Configuration.h:233
counter
Definition: counter.py:1
cscdqm::Configuration::fnIsBookedDDU
std::function< bool(unsigned int &)> fnIsBookedDDU
Definition: CSCDQM_Configuration.h:269
cscdqm::ChamberCounterKeyType::counters
ChamberCounterMapType counters
Definition: CSCDQM_Configuration.h:213
cscdqm::Configuration::eventProcessTimer
void eventProcessTimer(const bool start)
Switch on/off event processing timer.
Definition: CSCDQM_Configuration.h:524
cscdqm::Configuration::Configuration
Configuration()
Constructor.
Definition: CSCDQM_Configuration.h:287
common_cff.doc
doc
Definition: common_cff.py:54
electrons_cff.bool
bool
Definition: electrons_cff.py:366
mps_fire.i
i
Definition: mps_fire.py:428
start
Definition: start.py:1
cscdqm::HistoDef
Abstract Base Histogram Definition.
Definition: CSCDQM_HistoDef.h:62
cscdqm::HistoId
unsigned int HistoId
Definition: CSCDQM_HistoDef.h:35
cscdqm::ChamberMapCounterMapType
boost::multi_index_container< ChamberCounterKeyType, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::composite_key< ChamberCounterKeyType, boost::multi_index::member< ChamberCounterKeyType, HwId, &ChamberCounterKeyType::crateId >, boost::multi_index::member< ChamberCounterKeyType, HwId, &ChamberCounterKeyType::dmbId > > > > > ChamberMapCounterMapType
Definition: CSCDQM_Configuration.h:225
cscdqm::Configuration::updateEffTimer
void updateEffTimer(const bool start)
Switch on/off efficiency MO processing timer.
Definition: CSCDQM_Configuration.h:551
cscdqm::Configuration::nEvents
unsigned long nEvents
Definition: CSCDQM_Configuration.h:701
cscdqm::MOFilterItem::MOFilterItem
MOFilterItem(const std::string pattern_, const bool include_)
Definition: CSCDQM_Configuration.h:192
SEPFIELD
#define SEPFIELD
Definition: CSCDQM_Configuration.h:459
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
cscdqm::Configuration::fnGetCacheDDUHisto
std::function< bool(const HistoId id, const HwId &id1, MonitorObject *&mo)> fnGetCacheDDUHisto
Definition: CSCDQM_Configuration.h:262
logger
Definition: logger.py:1
cscdqm::BAD_EVENTS
Definition: CSCDQM_Configuration.h:198
cscdqm::Configuration::fnGetCacheParHisto
std::function< bool(const HistoId id, MonitorObject *&mo)> fnGetCacheParHisto
Definition: CSCDQM_Configuration.h:265
fwrapper::cs
unique_ptr< ClusterSequence > cs
Definition: fastjetfortran_madfks.cc:47
cscdqm::Configuration::fnBook
std::function< MonitorObject *(const HistoBookRequest &)> fnBook
Definition: CSCDQM_Configuration.h:273
cscdqm::EVENT_DISPLAY_PLOT
Definition: CSCDQM_Configuration.h:203
globals_cff.id1
id1
Definition: globals_cff.py:33
crabWrapper._
_
Definition: crabWrapper.py:19
cscdqm::Configuration::nEventsGood
unsigned long nEventsGood
Definition: CSCDQM_Configuration.h:707
CSCDQM_Utility.h
cscdqm::Configuration::fnPutHisto
std::function< void(const HistoDef &histoT, MonitorObject *&)> fnPutHisto
Definition: CSCDQM_Configuration.h:266
cscdqm::DMB_TRIGGERS
Definition: CSCDQM_Configuration.h:199
cscdqm::Configuration::effCount
unsigned long effCount
Definition: CSCDQM_Configuration.h:719
cscdqm::Configuration::getNEventsBad
const unsigned long getNEventsBad() const
Definition: CSCDQM_Configuration.h:602
writedatasetfile.parser
parser
Definition: writedatasetfile.py:7
cscdqm::Utility::regexMatch
static bool regexMatch(const std::string &expression, const std::string &message)
Match RegExp expression string against string message and return result.
Definition: CSCDQM_Utility.cc:166
cscdqm::ChamberCounterKeyType::crateId
HwId crateId
Definition: CSCDQM_Configuration.h:211
LOG_INFO
#define LOG_INFO
Definition: CSCDQM_Logger.h:42
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
cscdqm::Configuration::effTimer
boost::timer effTimer
Definition: CSCDQM_Configuration.h:433
cscdqm::Configuration::effTimeSum
double effTimeSum
Definition: CSCDQM_Configuration.h:442
cscdqm::Configuration::eventTimer
boost::timer eventTimer
Definition: CSCDQM_Configuration.h:427
cscdqm::Configuration::nEventsBad
unsigned long nEventsBad
Definition: CSCDQM_Configuration.h:704
cscdqm::Configuration::fraTimer
boost::timer fraTimer
Definition: CSCDQM_Configuration.h:430
cscdqm::CFEB_TRIGGERS
Definition: CSCDQM_Configuration.h:202
cscdqm::Configuration::fnNextBookedCSC
std::function< bool(unsigned int &, unsigned int &, unsigned int &)> fnNextBookedCSC
Definition: CSCDQM_Configuration.h:267
cscdqm::Configuration::printStats
void printStats()
Print Statistics on Exit (Destruction)
Definition: CSCDQM_Configuration.h:470
cscdqm::Configuration::incNEvents
void incNEvents()
Definition: CSCDQM_Configuration.h:611
cscdqm::Configuration::chamberCounters
ChamberMapCounterMapType chamberCounters
Definition: CSCDQM_Configuration.h:722
cscdqm::ChamberCounterKeyType
Chamber Counters key type.
Definition: CSCDQM_Configuration.h:210
fwlog::logger
std::ostream & logger()
Definition: fwLog.cc:36
cscdqm::Configuration::fnGetCSCDetId
std::function< bool(const unsigned int, const unsigned int, CSCDetId &)> fnGetCSCDetId
Definition: CSCDQM_Configuration.h:276
cscdqm::Configuration::incNUnpackedCSC
void incNUnpackedCSC()
Definition: CSCDQM_Configuration.h:622
config
Definition: config.py:1
cscdqm::XMLFileErrorHandler
Takes care of errors and warnings while parsing XML files file in XML format.
Definition: CSCDQM_Exception.h:54
cscdqm::Configuration::getNUnpackedCSC
const unsigned long getNUnpackedCSC() const
Definition: CSCDQM_Configuration.h:605
cscdqm::Configuration::fnGetCacheCSCHisto
std::function< bool(const HistoId id, const HwId &id1, const HwId &id2, const HwId &id3, MonitorObject *&mo)> fnGetCacheCSCHisto
Definition: CSCDQM_Configuration.h:264
cscdqm::Configuration::incNEventsCSC
void incNEventsCSC()
Definition: CSCDQM_Configuration.h:621
cscdqm::HwId
unsigned int HwId
Definition: CSCDQM_HistoDef.h:38
CSCDQM_MonitorObjectProvider.h
CSCDQM_Exception.h
cscdqm::Configuration::nUnpackedCSC
unsigned long nUnpackedCSC
Definition: CSCDQM_Configuration.h:713
cscdqm::ChamberCounterType
ChamberCounterType
Chamber level counter types.
Definition: CSCDQM_Configuration.h:196
CONFIG_PARAMETER_SETTER_MACRO
#define CONFIG_PARAMETER_SETTER_MACRO(r, data, i, elem)
Definition: CSCDQM_Configuration.h:141
svgfig.load
def load(fileName)
Definition: svgfig.py:547
cscdqm::Configuration::fraTimeSum
double fraTimeSum
Definition: CSCDQM_Configuration.h:439
cscdqm::DMB_EVENTS
Definition: CSCDQM_Configuration.h:197
ALCARECOTkAlBeamHalo_cff.filter
filter
Definition: ALCARECOTkAlBeamHalo_cff.py:27
cscdqm::Configuration::fnIsBookedFED
std::function< bool(unsigned int &)> fnIsBookedFED
Definition: CSCDQM_Configuration.h:270
cscdqm::Configuration::getNEvents
const unsigned long getNEvents() const
Definition: CSCDQM_Configuration.h:601
cscdqm::HistoBookRequest
Definition: CSCDQM_MonitorObjectProvider.h:31
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CONFIG_PARAMETER_GETTER_MACRO
#define CONFIG_PARAMETER_GETTER_MACRO(r, data, i, elem)
Definition: CSCDQM_Configuration.h:134
cscdqm::ChamberCounterMapType
std::map< ChamberCounterType, uint32_t > ChamberCounterMapType
Definition: CSCDQM_Configuration.h:207
cscdqm::Configuration::getNEventsCSC
const unsigned long getNEventsCSC() const
Definition: CSCDQM_Configuration.h:604
edm::ParameterSet
Definition: ParameterSet.h:47
cscdqm::Configuration::eventTimeSum
double eventTimeSum
Definition: CSCDQM_Configuration.h:436
cscdqm::Configuration::fnGetHisto
std::function< bool(const HistoDef &histoT, MonitorObject *&)> fnGetHisto
Definition: CSCDQM_Configuration.h:257
cscdqm
Definition: CSCDQM_DCSBase.h:29
cscdqm::Configuration::fraCount
unsigned long fraCount
Definition: CSCDQM_Configuration.h:716
CSCDetId
Definition: CSCDetId.h:26
cscdqm::Configuration::globalTimer
boost::timer globalTimer
Definition: CSCDQM_Configuration.h:424
CONFIG_PARAMETERS_SEQ
#define CONFIG_PARAMETERS_SEQ
Definition: CSCDQM_Configuration.h:69
STATFIELD
#define STATFIELD(caption, value, units)
Definition: CSCDQM_Configuration.h:446
cscdqm::ALCT_TRIGGERS
Definition: CSCDQM_Configuration.h:200
cms::concurrency::xercesTerminate
void xercesTerminate()
Definition: Xerces.cc:23
value
Definition: value.py:1
cscdqm::Configuration::fnGetCacheEMUHisto
std::function< bool(const HistoId id, MonitorObject *&mo)> fnGetCacheEMUHisto
Definition: CSCDQM_Configuration.h:260
cscdqm::CLCT_TRIGGERS
Definition: CSCDQM_Configuration.h:201
cscdqm::ChamberCounterKeyType::ChamberCounterKeyType
ChamberCounterKeyType(const HwId &crateId_, const HwId &dmbId_, const ChamberCounterMapType &c_)
Definition: CSCDQM_Configuration.h:214
cscdqm::MOFilterItem::include
bool include
Definition: CSCDQM_Configuration.h:190
cscdqm::LogInfo
Information level logger. Use LOG_INFO macros instead, i.e. LOG_INFO << "x = " << x;.
Definition: CSCDQM_Logger.h:58
CONFIG_PARAMETER_DEFINE_MACRO
#define CONFIG_PARAMETER_DEFINE_MACRO(r, data, i, elem)
Definition: CSCDQM_Configuration.h:126
cscdqm::Configuration::copyChamberCounterValue
void copyChamberCounterValue(const ChamberCounterType counter_from, const ChamberCounterType counter_to, const HwId crateId, const HwId dmbId)
Copy Chamber counter value from one counter to another.
Definition: CSCDQM_Configuration.h:669
cscdqm::Configuration
CSCDQM Framework Global Configuration.
Definition: CSCDQM_Configuration.h:231
cscdqm::Configuration::setChamberCounterValue
void setChamberCounterValue(const ChamberCounterType counter, const HwId crateId, const HwId dmbId, const uint32_t value)
Set Chamber counter value.
Definition: CSCDQM_Configuration.h:643
pdwgDoubleElectron_cfi.filterName
filterName
Definition: pdwgDoubleElectron_cfi.py:7
cscdqm::Configuration::getNEventsGood
const unsigned long getNEventsGood() const
Definition: CSCDQM_Configuration.h:603
init
Definition: init.py:1
relativeConstraints.value
value
Definition: relativeConstraints.py:53
CONFIG_PARAMETER_DEFAULT_MACRO
#define CONFIG_PARAMETER_DEFAULT_MACRO(r, data, i, elem)
Definition: CSCDQM_Configuration.h:130
HiBiasedCentrality_cfi.function
function
Definition: HiBiasedCentrality_cfi.py:4
cscdqm::Configuration::MOFilterItems
std::vector< MOFilterItem > MOFilterItems
Definition: CSCDQM_Configuration.h:236
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
cscdqm::MonitorObject
Monitoring Object interface used to cover Root object and provide common interface to EventProcessor ...
Definition: CSCDQM_MonitorObject.h:35
cscdqm::Utility::regexReplace
static void regexReplace(const std::string &expression, std::string &message, const std::string replace="")
Replace string part that matches RegExp expression with some string.
Definition: CSCDQM_Utility.cc:177
cscdqm::Configuration::fnGetCacheFEDHisto
std::function< bool(const HistoId id, const HwId &id1, MonitorObject *&mo)> fnGetCacheFEDHisto
Definition: CSCDQM_Configuration.h:261
funct::void
TEMPL(T2) struct Divides void
Definition: Factorize.h:24
cscdqm::Configuration::reset
void reset()
Reset counters.
Definition: CSCDQM_Configuration.h:584
cscdqm::MOFilterItem
MO filter Item definition (loaded from XML/PSet)
Definition: CSCDQM_Configuration.h:186
include
bool include(const CollT &coll, const ItemT &item)
Definition: EcalDetIdToBeRecoveredProducer.cc:71
cscdqm::Configuration::needBookMO
const bool needBookMO(const std::string name) const
Check if MO is not excluded by MO Filter.
Definition: CSCDQM_Configuration.h:565
mps_fire.result
result
Definition: mps_fire.py:311
cscdqm::Configuration::init
void init()
Initialize parameter values and reset counters (used by constructors)
Definition: CSCDQM_Configuration.h:245
ParameterSet.h
LOG_WARN
#define LOG_WARN
Definition: CSCDQM_Logger.h:41
globals_cff.id2
id2
Definition: globals_cff.py:34
cscdqm::Configuration::incChamberCounter
void incChamberCounter(const ChamberCounterType counter, const HwId crateId, const HwId dmbId)
Increment Chamber counter by 1.
Definition: CSCDQM_Configuration.h:631
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
cscdqm::Configuration::getChamberCounterValue
const uint32_t getChamberCounterValue(const ChamberCounterType counter, const HwId crateId, const HwId dmbId) const
Get Chamber counter value.
Definition: CSCDQM_Configuration.h:683
cscdqm::Configuration::incNEventsGood
void incNEventsGood()
Definition: CSCDQM_Configuration.h:620
cscdqm::Configuration::~Configuration
~Configuration()
Destructor.
Definition: CSCDQM_Configuration.h:308
cms::concurrency::xercesInitialize
void xercesInitialize()
Definition: Xerces.cc:18
cscdqm::ChamberCounterKeyType::dmbId
HwId dmbId
Definition: CSCDQM_Configuration.h:212
cscdqm::Configuration::updateFraTimer
void updateFraTimer(const bool start)
Switch on/off fractional MO processing timer.
Definition: CSCDQM_Configuration.h:537
cscdqm::Configuration::Configuration
Configuration(const bool printStats)
Constructor.
Definition: CSCDQM_Configuration.h:296
cscdqm::MOFilterItem::pattern
TPRegexp pattern
Definition: CSCDQM_Configuration.h:188