test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DigiTask.cc
Go to the documentation of this file.
2 
3 using namespace hcaldqm;
4 using namespace hcaldqm::constants;
5 using namespace hcaldqm::filter;
6 
8  DQTask(ps)
9 {
11  edm::InputTag("hcalDigis"));
13  edm::InputTag("hcalDigis"));
15  edm::InputTag("hcalDigis"));
16 
17  _tokHBHE = consumes<HBHEDigiCollection>(_tagHBHE);
18  _tokHO = consumes<HODigiCollection>(_tagHO);
19  _tokHF = consumes<HFDigiCollection>(_tagHF);
20 
21  _cutSumQ_HBHE = ps.getUntrackedParameter<double>("cutSumQ_HBHE", 20);
22  _cutSumQ_HO = ps.getUntrackedParameter<double>("cutSumQ_HO", 20);
23  _cutSumQ_HF = ps.getUntrackedParameter<double>("cutSumQ_HF", 20);
24  _thresh_unihf = ps.getUntrackedParameter<double>("thresh_unihf", 0.2);
25 
26  _vflags.resize(nDigiFlag);
27  _vflags[fUni]=hcaldqm::flag::Flag("UniSlotHF");
31 }
32 
34  edm::Run const& r, edm::EventSetup const& es)
35 {
36  DQTask::bookHistograms(ib,r,es);
37 
38  // GET WHAT YOU NEED
40  es.get<HcalDbRecord>().get(dbs);
41  _emap = dbs->getHcalMapping();
42  std::vector<int> vFEDs = hcaldqm::utilities::getFEDList(_emap);
43  std::vector<int> vFEDsVME = hcaldqm::utilities::getFEDVMEList(_emap);
44  std::vector<int> vFEDsuTCA = hcaldqm::utilities::getFEDuTCAList(_emap);
45  std::vector<uint32_t> vVME;
46  std::vector<uint32_t> vuTCA;
47  std::vector<uint32_t> vFEDHF;
51  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
53  vVME);
55  vuTCA);
56  vFEDHF.push_back(HcalElectronicsId(22, SLOT_uTCA_MIN,
57  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
58  vFEDHF.push_back(HcalElectronicsId(29, SLOT_uTCA_MIN,
59  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
60  vFEDHF.push_back(HcalElectronicsId(32, SLOT_uTCA_MIN,
61  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
62 
63  // initialize filters
65  vFEDHF);
66 
67  // push the rawIds of each fed into the vector...
68  for (std::vector<int>::const_iterator it=vFEDsVME.begin();
69  it!=vFEDsVME.end(); ++it)
70  _vhashFEDs.push_back(HcalElectronicsId(
72  (*it)-FED_VME_MIN).rawId());
73  for (std::vector<int>::const_iterator it=vFEDsuTCA.begin();
74  it!=vFEDsuTCA.end(); ++it)
75  _vhashFEDs.push_back(HcalElectronicsId(
77  FIBERCH_MIN, false).rawId());
78 
79  // INITIALIZE FIRST
105  _cTimingCut_FEDVME.initialize(_name, "TimingCut",
110  _cTimingCut_FEDuTCA.initialize(_name, "TimingCut",
117  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
122  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
125  _cTimingCutvsLS_FED.initialize(_name, "TimingvsLS",
129  _cTimingCut_depth.initialize(_name, "TimingCut",
134 
135  // Occupancy w/o a cut
136  _cOccupancy_FEDVME.initialize(_name, "Occupancy",
141  _cOccupancy_FEDuTCA.initialize(_name, "Occupancy",
148  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
153  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
156  _cOccupancyvsLS_Subdet.initialize(_name, "OccupancyvsLS",
160  _cOccupancy_depth.initialize(_name, "Occupancy",
165 
166  // Occupancy w/ a cut
167  _cOccupancyCut_FEDVME.initialize(_name, "OccupancyCut",
172  _cOccupancyCut_FEDuTCA.initialize(_name, "OccupancyCut",
179  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
184  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
187  _cOccupancyCutvsLS_Subdet.initialize(_name, "OccupancyCutvsLS",
191  _cOccupancyCut_depth.initialize(_name, "OccupancyCut",
196 
197  _cDigiSize_FED.initialize(_name, "DigiSize",
201 
202  // INITIALIZE HISTOGRAMS that are only for Online
203  if (_ptype==fOnline)
204  {
205  std::vector<uint32_t> vhashHF;
206  vhashHF.push_back(HcalDetId(HcalForward, 31,1,1).rawId());
208  vhashHF);
209 
210  // Charge sharing
219  _cDigiSizevsLS_FED.initialize(_name, "DigiSizevsLS",
223  _cTimingCutvsiphi_SubdetPM.initialize(_name, "TimingCutvsiphi",
227  _cTimingCutvsieta_Subdet.initialize(_name, "TimingCutvsieta",
231  _cOccupancyvsiphi_SubdetPM.initialize(_name, "Occupancyvsiphi",
235  _cOccupancyvsieta_Subdet.initialize(_name, "Occupancyvsieta",
239  _cOccupancyCutvsiphi_SubdetPM.initialize(_name, "OccupancyCutvsiphi",
243  _cOccupancyCutvsieta_Subdet.initialize(_name, "OccupancyCutvsieta",
247  _cOccupancyCutvsLS_Subdet.initialize(_name, "OccupancyCutvsLS",
251  _cOccupancyCutvsBX_Subdet.initialize(_name, "OccupancyCutvsBX",
255 // _cOccupancyCutvsSlotvsLS_HFPM.initialize(_name,
256 // "OccupancyCutvsSlotvsLS", hcaldqm::hashfunctions::fSubdetPM,
257 // new hcaldqm::quantity::LumiSection(_maxLS),
258 // new hcaldqm::quantity::ElectronicsQuantity(hcaldqm::quantity::fSlotuTCA),
259 // new hcaldqm::quantity::ValueQuantity(hcaldqm::quantity::fN));
261  "OccupancyCutvsiphivsLS", hcaldqm::hashfunctions::fSubdetPM,
265  _cSummaryvsLS_FED.initialize(_name, "SummaryvsLS",
270  _cSummaryvsLS.initialize(_name, "SummaryvsLS",
274 
280  }
281 
282  // BOOK HISTOGRAMS
283  char cutstr[200];
284  sprintf(cutstr, "_SumQHBHE%dHO%dHF%d", int(_cutSumQ_HBHE),
285  int(_cutSumQ_HO), int(_cutSumQ_HF));
286  char cutstr2[200];
287  sprintf(cutstr2, "_SumQHF%d", int(_cutSumQ_HF));
288 
290 
295 
297 
305 
317 
319 
320  // BOOK HISTOGRAMS that are only for Online
323  if (_ptype==fOnline)
324  {
336 // _cOccupancyCutvsSlotvsLS_HFPM.book(ib, _emap, _filter_HF, _subsystem);
340 
342  _xNChs.book(_emap);
344  _xUni.book(_emap);
346 
347  // just PER HF FED RECORD THE #CHANNELS
348  // ONLY WAY TO DO THAT AUTOMATICALLY AND W/O HARDCODING 1728
349  // or ANY OTHER VALUES LIKE 2592, 2192
350  std::vector<HcalGenericDetId> gids = _emap->allPrecisionId();
351  for (std::vector<HcalGenericDetId>::const_iterator it=gids.begin();
352  it!=gids.end(); ++it)
353  {
354  if (!it->isHcalDetId())
355  continue;
356  HcalDetId did(it->rawId());
357  if (_xQuality.exists(did))
358  {
359  HcalChannelStatus cs(it->rawId(), _xQuality.get(
360  HcalDetId(*it)));
361  if (
364  continue;
365  }
367  _xNChsNominal.get(eid)++; // he will know the nominal #channels per FED
368  }
369  }
370 
371  // MARK THESE HISTOGRAMS AS LUMI BASED FOR OFFLINE PROCESSING
372  if (_ptype==fOffline)
373  {
376  }
377 
378  // book Number of Events vs LS histogram
379  ib.setCurrentFolder(_subsystem+"/RunInfo");
380  meNumEvents1LS = ib.book1D("NumberOfEvents", "NumberOfEvents",
381  1, 0, 1);
383 
384  // book the flag for unknown ids and the online guy as well
386  meUnknownIds1LS = ib.book1D("UnknownIds", "UnknownIds",
387  1, 0, 1);
388  _unknownIdsPresent = false;
390 }
391 
393 {
394  DQTask::_resetMonitors(uf);
395 
396  switch(uf)
397  {
398  case hcaldqm::f1LS:
399  _unknownIdsPresent = false;
400  break;
401  case hcaldqm::f50LS:
402  // ^^^ONLINE ONLY!
403  if (_ptype==fOnline)
405  // ^^^
406  break;
407  default:
408  break;
409  }
410 }
411 
412 /* virtual */ void DigiTask::_process(edm::Event const& e,
413  edm::EventSetup const&)
414 {
418 
419  if (!e.getByToken(_tokHBHE, chbhe))
420  _logger.dqmthrow("Collection HBHEDigiCollection isn't available"
421  + _tagHBHE.label() + " " + _tagHBHE.instance());
422  if (!e.getByToken(_tokHO, cho))
423  _logger.dqmthrow("Collection HODigiCollection isn't available"
424  + _tagHO.label() + " " + _tagHO.instance());
425  if (!e.getByToken(_tokHF, chf))
426  _logger.dqmthrow("Collection HFDigiCollection isn't available"
427  + _tagHF.label() + " " + _tagHF.instance());
428 
429  // extract some info per event
430  int bx = e.bunchCrossing();
431  meNumEvents1LS->Fill(0.5); // just increment
432 
433  // To fill histograms outside of the loop, you need to determine if there were
434  // any valid det ids first
435  uint32_t rawidValid = 0;
436  uint32_t rawidHBValid = 0;
437  uint32_t rawidHEValid = 0;
438 
439  // HB collection
440  int numChs = 0;
441  int numChsCut = 0;
442  int numChsHE = 0;
443  int numChsCutHE = 0;
444  for (HBHEDigiCollection::const_iterator it=chbhe->begin(); it!=chbhe->end();
445  ++it)
446  {
447  double sumQ = hcaldqm::utilities::sumQ<HBHEDataFrame>(*it, 2.5, 0, it->size()-1);
448 
449  // Explicit check on the DetIds present in the Collection
450  HcalDetId const& did = it->id();
451  uint32_t rawid = _ehashmap.lookup(did);
452  if (rawid==0)
453  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
454  HcalElectronicsId const& eid(rawid);
455  if (did.subdet()==HcalBarrel)
456  rawidHBValid = did.rawId();
457  else if (did.subdet()==HcalEndcap)
458  rawidHEValid = did.rawId();
459 
460  // filter out channels that are masked out
461  if (_xQuality.exists(did))
462  {
463  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
464  if (
467  continue;
468  }
469 
470  _cSumQ_SubdetPM.fill(did, sumQ);
471  _cOccupancy_depth.fill(did);
472  if (_ptype==fOnline)
473  {
474  _cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
475  it->size()!=constants::DIGISIZE[did.subdet()-1]?
476  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
479  }
480  _cDigiSize_FED.fill(eid, it->size());
481  if (eid.isVMEid())
482  {
485  }
486  else
487  {
490  /*
491  if (!it->validate(0, it->size()))
492  {
493  _cCapIdRots_depth.fill(did);
494  _cCapIdRots_FEDuTCA.fill(eid, 1);
495  }*/
496  }
497 
498  for (int i=0; i<it->size(); i++)
499  {
500  _cADC_SubdetPM.fill(did, it->sample(i).adc());
501  _cfC_SubdetPM.fill(did, it->sample(i).nominal_fC());
502  if (sumQ>_cutSumQ_HBHE)
503  _cShapeCut_FED.fill(eid, i, it->sample(i).nominal_fC());
504  }
505 
506  if (sumQ>_cutSumQ_HBHE)
507  {
508  double timing = hcaldqm::utilities::aveTS<HBHEDataFrame>(*it, 2.5, 0,
509  it->size()-1);
510  _cTimingCut_SubdetPM.fill(did, timing);
511  _cTimingCut_depth.fill(did, timing);
513  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
514  _cSumQ_depth.fill(did, sumQ);
515  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
516  if (_ptype==fOnline)
517  {
518  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
519  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
520  _cTimingCutvsieta_Subdet.fill(did, timing);
524  }
525  if (eid.isVMEid())
526  {
527  _cTimingCut_FEDVME.fill(eid, timing);
528  _cTimingCut_ElectronicsVME.fill(eid, timing);
531  }
532  else
533  {
534  _cTimingCut_FEDuTCA.fill(eid, timing);
535  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
538  }
539  did.subdet()==HcalBarrel?numChsCut++:numChsCutHE++;
540  }
541  did.subdet()==HcalBarrel?numChs++:numChsHE++;
542  }
543 
544  if (rawidHBValid!=0 && rawidHEValid!=0)
545  {
547  numChs);
549  numChsHE);
550  // ONLINE ONLY!
551  if (_ptype==fOnline)
552  {
554  _currentLS, numChsCut);
555  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidHBValid), bx,
556  numChsCut);
558  _currentLS, numChsCutHE);
559  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidHEValid), bx,
560  numChsCutHE);
561  }
562  // ^^^ONLINE ONLY!
563  }
564  numChs=0;
565  numChsCut = 0;
566 
567  // reset
568  rawidValid = 0;
569 
570  // HO collection
571  for (HODigiCollection::const_iterator it=cho->begin(); it!=cho->end();
572  ++it)
573  {
574  double sumQ = hcaldqm::utilities::sumQ<HODataFrame>(*it, 8.5, 0, it->size()-1);
575 
576  // Explicit check on the DetIds present in the Collection
577  HcalDetId const& did = it->id();
578  uint32_t rawid = _ehashmap.lookup(did);
579  if (rawid==0)
580  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
581  HcalElectronicsId const& eid(rawid);
582  if (did.subdet()==HcalOuter)
583  rawidValid = did.rawId();
584 
585  // filter out channels that are masked out
586  if (_xQuality.exists(did))
587  {
588  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
589  if (
592  continue;
593  }
594 
595  _cSumQ_SubdetPM.fill(did, sumQ);
596  _cOccupancy_depth.fill(did);
597  if (_ptype==fOnline)
598  {
599  _cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
600  it->size()!=constants::DIGISIZE[did.subdet()-1]?
601  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
604  }
605  _cDigiSize_FED.fill(eid, it->size());
606  if (eid.isVMEid())
607  {
610  /*
611  if (!it->validate(0, it->size()))
612  _cCapIdRots_FEDVME.fill(eid, 1);
613  */
614  }
615  else
616  {
619  /*
620  if (!it->validate(0, it->size()))
621  _cCapIdRots_FEDuTCA.fill(eid, 1);*/
622  }
623 
624  for (int i=0; i<it->size(); i++)
625  {
626  _cADC_SubdetPM.fill(did, it->sample(i).adc());
627  _cfC_SubdetPM.fill(did, it->sample(i).nominal_fC());
628  if (sumQ>_cutSumQ_HO)
629  _cShapeCut_FED.fill(eid, i, it->sample(i).nominal_fC());
630  }
631 
632  if (sumQ>_cutSumQ_HO)
633  {
634  double timing = hcaldqm::utilities::aveTS<HODataFrame>(*it, 8.5, 0,
635  it->size()-1);
636  _cSumQ_depth.fill(did, sumQ);
637  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
639  _cTimingCut_SubdetPM.fill(did, timing);
640  _cTimingCut_depth.fill(did, timing);
641  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
642  if (_ptype==fOnline)
643  {
644  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
645  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
646  _cTimingCutvsieta_Subdet.fill(did, timing);
650  }
651  if (eid.isVMEid())
652  {
653  _cTimingCut_FEDVME.fill(eid, timing);
654  _cTimingCut_ElectronicsVME.fill(eid, timing);
657  }
658  else
659  {
660  _cTimingCut_FEDuTCA.fill(eid, timing);
661  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
664  }
665  numChsCut++;
666  }
667  numChs++;
668  }
669 
670  if (rawidValid!=0)
671  {
673  numChs);
674 
675  if (_ptype==fOnline)
676  {
678  _currentLS, numChsCut);
679  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidValid), bx,
680  numChsCut);
681  }
682  }
683  numChs=0; numChsCut=0;
684 
685  // reset
686  rawidValid = 0;
687 
688  // HF collection
689  for (HFDigiCollection::const_iterator it=chf->begin(); it!=chf->end();
690  ++it)
691  {
692  double sumQ = hcaldqm::utilities::sumQ<HFDataFrame>(*it, 2.5, 0, it->size()-1);
693 
694  // Explicit check on the DetIds present in the Collection
695  HcalDetId const& did = it->id();
696  uint32_t rawid = _ehashmap.lookup(did);
697  if (rawid==0)
698  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
699  HcalElectronicsId const& eid(rawid);
700  if (did.subdet()==HcalForward)
701  rawidValid = did.rawId();
702 
703  // filter out channels that are masked out
704  if (_xQuality.exists(did))
705  {
706  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
707  if (
710  continue;
711  }
712 
713  _cSumQ_SubdetPM.fill(did, sumQ);
714  _cOccupancy_depth.fill(did);
715  if (_ptype==fOnline)
716  {
717  _xNChs.get(eid)++;
718  _cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
719  it->size()!=constants::DIGISIZE[did.subdet()-1]?
720  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
723  }
724  _cDigiSize_FED.fill(eid, it->size());
725  if (eid.isVMEid())
726  {
729  /*
730  if (!it->validate(0, it->size()))
731  _cCapIdRots_FEDVME.fill(eid, 1);*/
732  }
733  else
734  {
737  /*
738  if (!it->validate(0, it->size()))
739  _cCapIdRots_FEDuTCA.fill(eid, 1);*/
740  }
741 
742  for (int i=0; i<it->size(); i++)
743  {
744  _cADC_SubdetPM.fill(did, it->sample(i).adc());
745  _cfC_SubdetPM.fill(did, it->sample(i).nominal_fC());
746  if (sumQ>_cutSumQ_HF)
747  _cShapeCut_FED.fill(eid, i, it->sample(i).nominal_fC());
748  }
749 
750  if (sumQ>_cutSumQ_HF)
751  {
752  double timing = hcaldqm::utilities::aveTS<HFDataFrame>(*it, 2.5, 0,
753  it->size()-1);
754  double q1 = it->sample(1).nominal_fC()-2.5;
755  double q2 = it->sample(2).nominal_fC()-2.5;
756  double q2q12 = q2/(q1+q2);
757  _cSumQ_depth.fill(did, sumQ);
758  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
759  if (_ptype==fOnline)
760  {
761  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
762  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
763  _cTimingCutvsieta_Subdet.fill(did, timing);
767 // _cOccupancyCutvsSlotvsLS_HFPM.fill(did, _currentLS);
768  _xUniHF.get(eid)++;
769  }
770  _cTimingCut_SubdetPM.fill(did, timing);
771  _cTimingCut_depth.fill(did, timing);
772  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
774  if (!eid.isVMEid())
775  if (_ptype==fOnline)
776  _cQ2Q12CutvsLS_FEDHF.fill(eid, _currentLS, q2q12);
777  if (eid.isVMEid())
778  {
779  _cTimingCut_FEDVME.fill(eid, timing);
780  _cTimingCut_ElectronicsVME.fill(eid, timing);
783  }
784  else
785  {
786  _cTimingCut_FEDuTCA.fill(eid, timing);
787  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
790  }
791  numChsCut++;
792  }
793  numChs++;
794  }
795 
796  if (rawidValid!=0)
797  {
799  numChs);
800 
801  if (_ptype==fOnline)
802  {
804  _currentLS, numChsCut);
805  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidValid), bx,
806  numChsCut);
807  }
808  }
809 }
810 
812  edm::LuminosityBlock const& lb, edm::EventSetup const& es)
813 {
814  DQTask::beginLuminosityBlock(lb, es);
815 }
816 
818  edm::EventSetup const& es)
819 {
820  if (_ptype!=fOnline)
821  return;
822 
823  for (uintCompactMap::const_iterator it=_xUniHF.begin();
824  it!=_xUniHF.end(); ++it)
825  {
826  uint32_t hash1 = it->first;
827  HcalElectronicsId eid1(hash1);
828  double x1 = it->second;
829 
830  for (uintCompactMap::const_iterator jt=_xUniHF.begin();
831  jt!=_xUniHF.end(); ++jt)
832  {
833  if (jt==it)
834  continue;
835  double x2 = jt->second;
836  if (x2==0)
837  continue;
838  if (x1/x2<_thresh_unihf)
839  _xUni.get(eid1)++;
840  }
841  }
842 
843  for (std::vector<uint32_t>::const_iterator it=_vhashFEDs.begin();
844  it!=_vhashFEDs.end(); ++it)
845  {
846  hcaldqm::flag::Flag fSum("DIGI");
848 
849  std::vector<uint32_t>::const_iterator cit=std::find(
850  _vcdaqEids.begin(), _vcdaqEids.end(), *it);
851  if (cit==_vcdaqEids.end())
852  {
853  // not @cDAQ
854  for (uint32_t iflag=0; iflag<_vflags.size(); iflag++)
855  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, int(iflag),
856  int(hcaldqm::flag::fNCDAQ));
858  continue;
859  }
860 
861  // FED is @cDAQ
864  {
865  if (_xDigiSize.get(eid)>0)
867  else
870  {
871  double fr = double(_xNChs.get(eid))/double(
873  if (_runkeyVal==0 || _runkeyVal==4)
874  {
875  // only for pp or hi
876  if (_xUni.get(eid)>0)
878  else
880  }
881  if (fr<0.95)
883  else if (fr<1.0)
885  else
887  }
888  }
889  if (_unknownIdsPresent)
891  else
893 
894  int iflag=0;
895  for (std::vector<hcaldqm::flag::Flag>::iterator ft=_vflags.begin();
896  ft!=_vflags.end(); ++ft)
897  {
899  int(ft->_state));
900  fSum+=(*ft);
901  iflag++;
902 
903  // reset!
904  ft->reset();
905  }
907  }
908 
910  _xNChs.reset();
911 
912  // in the end always do the DQTask::endLumi
913  DQTask::endLuminosityBlock(lb, es);
914 }
915 
917 
hcaldqm::ContainerProf1D _cTimingCutvsiphi_SubdetPM
Definition: DigiTask.h:102
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meNumEvents1LS
Definition: DigiTask.h:145
int i
Definition: DBlmapReader.cc:9
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *qy=new ValueQuantity(quantity::fN), int debug=0)
Definition: Container1D.cc:40
hcaldqm::Container1D _cADC_SubdetPM
Definition: DigiTask.h:83
hcaldqm::Container1D _cOccupancyCutvsieta_Subdet
Definition: DigiTask.h:127
auto_ptr< ClusterSequence > cs
hcaldqm::ContainerProf1D _cSumQvsBX_SubdetPM
Definition: DigiTask.h:88
virtual bool exists(HcalDetId const &)
Definition: ContainerXXX.h:267
virtual void setBinContent(HcalDetId const &, int)
Definition: Container2D.cc:235
int const CRATE_VME_MIN
Definition: Constants.h:60
int ib
Definition: cuy.py:660
uint16_t fed2crate(int fed)
Definition: Utilities.cc:12
edm::InputTag _tagHO
Definition: DigiTask.h:47
hcaldqm::ContainerProf1D _cQ2Q12CutvsLS_FEDHF
Definition: DigiTask.h:106
MonitorElement * meUnknownIds1LS
Definition: DigiTask.h:146
edm::EDGetTokenT< HBHEDigiCollection > _tokHBHE
Definition: DigiTask.h:49
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
edm::EDGetTokenT< HFDigiCollection > _tokHF
Definition: DigiTask.h:51
double _cutSumQ_HO
Definition: DigiTask.h:53
virtual CompactMap::const_iterator begin()
Definition: ContainerXXX.h:75
double _thresh_unihf
Definition: DigiTask.h:54
UpdateFreq
Definition: DQTask.h:17
State _state
Definition: Flag.h:79
std::vector< HBHEDataFrame >::const_iterator const_iterator
int bunchCrossing() const
Definition: EventBase.h:65
int const SPIGOT_MIN
Definition: Constants.h:85
hcaldqm::ContainerProf2D _cSumQ_depth
Definition: DigiTask.h:86
edm::EDGetTokenT< HODigiCollection > _tokHO
Definition: DigiTask.h:50
hcaldqm::Container1D _cOccupancyCutvsiphi_SubdetPM
Definition: DigiTask.h:126
virtual void reset()
Definition: ContainerXXX.h:366
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
hcaldqm::ContainerSingle2D _cSummaryvsLS
Definition: DigiTask.h:150
hcaldqm::ContainerProf2D _cTimingCut_FEDVME
Definition: DigiTask.h:96
int const FIBER_VME_MIN
Definition: Constants.h:90
hcaldqm::Container2D _cOccupancyCutvsiphivsLS_SubdetPM
Definition: DigiTask.h:129
hcaldqm::ContainerXXX< uint32_t > _xDigiSize
Definition: DigiTask.h:139
hcaldqm::ContainerProf2D _cTimingCut_FEDuTCA
Definition: DigiTask.h:97
void bookHistograms(fwlite::EventContainer &eventCont)
double q2[4]
Definition: TauolaWrapper.h:88
int const FIBERCH_MIN
Definition: Constants.h:100
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: DigiTask.cc:811
void Fill(long long x)
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
std::vector< int > getFEDVMEList(HcalElectronicsMap const *)
Definition: Utilities.cc:71
hcaldqm::filter::HashFilter _filter_VME
Definition: DigiTask.h:76
virtual CompactMap::const_iterator end()
Definition: ContainerXXX.h:77
virtual void fill(HcalDetId const &)
Definition: Container2D.cc:59
ProcessingType _ptype
Definition: DQModule.h:59
virtual void fill(uint32_t)
Definition: Container1D.cc:82
virtual void reset()
Definition: Container1D.cc:65
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, int debug=0)
edm::InputTag _tagHBHE
Definition: DigiTask.h:46
void reset()
Definition: Flag.h:76
virtual void setBinContent(int, int, int)
void dqmthrow(std::string const &msg) const
Definition: Logger.h:15
ContainerXXX< uint32_t > _xQuality
Definition: DQTask.h:62
int const FED_VME_MIN
Definition: Constants.h:47
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fEnergy), int debug=0)
hcaldqm::Container2D _cOccupancyCut_ElectronicsVME
Definition: DigiTask.h:123
hcaldqm::Container1D _cShapeCut_FED
Definition: DigiTask.h:91
hcaldqm::Container2D _cOccupancyCut_depth
Definition: DigiTask.h:125
hcaldqm::ContainerProf1D _cOccupancyCutvsBX_Subdet
Definition: DigiTask.h:134
double _cutSumQ_HF
Definition: DigiTask.h:53
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fN), int debug=0)
Definition: Container2D.cc:32
int const FIBER_uTCA_MIN1
Definition: Constants.h:93
virtual void _resetMonitors(hcaldqm::UpdateFreq)
Definition: DigiTask.cc:392
double _cutSumQ_HBHE
Definition: DigiTask.h:53
hcaldqm::ContainerProf2D _cTimingCut_depth
Definition: DigiTask.h:101
std::vector< HcalGenericDetId > allPrecisionId() const
Logger _logger
Definition: DQModule.h:70
hcaldqm::Container2D _cOccupancy_FEDVME
Definition: DigiTask.h:110
hcaldqm::Container2D _cOccupancyCut_FEDVME
Definition: DigiTask.h:121
hcaldqm::Container2D _cOccupancy_depth
Definition: DigiTask.h:114
std::string _name
Definition: DQModule.h:57
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
hcaldqm::Container2D _cSummaryvsLS_FED
Definition: DigiTask.h:149
hcaldqm::filter::HashFilter _filter_FEDHF
Definition: DigiTask.h:78
int const CRATE_uTCA_MIN
Definition: Constants.h:65
DigiTask(edm::ParameterSet const &)
Definition: DigiTask.cc:7
hcaldqm::ContainerProf1D _cOccupancyvsLS_Subdet
Definition: DigiTask.h:132
hcaldqm::ContainerProf1D _cSumQvsLS_SubdetPM
Definition: DigiTask.h:87
hcaldqm::ContainerXXX< uint32_t > _xUni
Definition: DigiTask.h:140
hcaldqm::ContainerProf1D _cTimingCutvsLS_FED
Definition: DigiTask.h:100
bool isVMEid() const
hcaldqm::Container2D _cOccupancyCut_FEDuTCA
Definition: DigiTask.h:122
hcaldqm::Container2D _cOccupancy_ElectronicsVME
Definition: DigiTask.h:112
edm::InputTag _tagHF
Definition: DigiTask.h:48
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:276
bool isFEDHBHE(HcalElectronicsId const &)
Definition: Utilities.cc:124
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container2D.cc:895
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:99
hcaldqm::Container1D _cDigiSize_FED
Definition: DigiTask.h:137
virtual void initialize(std::string const &folder, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fN), int debug=0)
double q1[4]
Definition: TauolaWrapper.h:87
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container1D.cc:957
hcaldqm::ContainerXXX< uint32_t > _xNChsNominal
Definition: DigiTask.h:142
hcaldqm::Container1D _cSumQ_SubdetPM
Definition: DigiTask.h:85
const T & get() const
Definition: EventSetup.h:56
hcaldqm::Container1D _cOccupancyvsiphi_SubdetPM
Definition: DigiTask.h:115
int const DIGISIZE[SUBDET_NUM]
Definition: Constants.h:132
hcaldqm::ContainerProf1D _cTimingCutvsieta_Subdet
Definition: DigiTask.h:103
hcaldqm::electronicsmap::ElectronicsMap _dhashmap
Definition: DigiTask.h:73
std::vector< hcaldqm::flag::Flag > _vflags
Definition: DigiTask.h:57
std::string const & label() const
Definition: InputTag.h:36
hcaldqm::Container2D _cOccupancyCut_ElectronicsuTCA
Definition: DigiTask.h:124
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsVME
Definition: DigiTask.h:98
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:249
virtual void setLumiFlag()
std::vector< int > getFEDList(HcalElectronicsMap const *)
Definition: Utilities.cc:47
std::vector< int > getFEDuTCAList(HcalElectronicsMap const *)
Definition: Utilities.cc:97
std::string _subsystem
Definition: DQModule.h:64
hcaldqm::filter::HashFilter _filter_uTCA
Definition: DigiTask.h:77
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: DigiTask.cc:817
bool isFEDHO(HcalElectronicsId const &)
Definition: Utilities.cc:171
std::vector< uint32_t > _vcdaqEids
Definition: DQTask.h:65
hcaldqm::ContainerProf1D _cDigiSizevsLS_FED
Definition: DigiTask.h:138
hcaldqm::ContainerXXX< uint32_t > _xNChs
Definition: DigiTask.h:141
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: DigiTask.h:72
hcaldqm::ContainerProf1D _cOccupancyCutvsLS_Subdet
Definition: DigiTask.h:133
virtual void initialize(hashfunctions::HashType, int debug=0)
Definition: ContainerXXX.h:91
virtual void initialize(FilterType ftype, HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:26
void setLumiFlag(void)
this ME is meant to be stored for each luminosity section
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
HcalElectronicsMap const * _emap
Definition: DigiTask.h:71
std::vector< uint32_t > _vhashFEDs
Definition: DigiTask.h:68
hcaldqm::filter::HashFilter _filter_HF
Definition: DigiTask.h:79
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)
Definition: DigiTask.cc:33
virtual void _process(edm::Event const &, edm::EventSetup const &)
Definition: DigiTask.cc:412
hcaldqm::Container1D _cOccupancyvsieta_Subdet
Definition: DigiTask.h:116
Readout chain identification for Hcal.
std::string const & instance() const
Definition: InputTag.h:37
bool isFEDHF(HcalElectronicsId const &)
Definition: Utilities.cc:146
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsuTCA
Definition: DigiTask.h:99
int const SLOT_uTCA_MIN
Definition: Constants.h:72
hcaldqm::Container1D _cTimingCut_SubdetPM
Definition: DigiTask.h:95
Definition: Run.h:43
bool _unknownIdsPresent
Definition: DigiTask.h:147
hcaldqm::Container2D _cOccupancy_FEDuTCA
Definition: DigiTask.h:111
hcaldqm::ContainerXXX< uint32_t > _xUniHF
Definition: DigiTask.h:140
double sumQ(DIGI const &digi, double ped, int i=0, int j=3)
Definition: Utilities.h:79
hcaldqm::Container1D _cfC_SubdetPM
Definition: DigiTask.h:84
hcaldqm::Container2D _cOccupancy_ElectronicsuTCA
Definition: DigiTask.h:113