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(22, SLOT_uTCA_MIN+6,
59  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
60  vFEDHF.push_back(HcalElectronicsId(29, SLOT_uTCA_MIN,
61  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
62  vFEDHF.push_back(HcalElectronicsId(29, SLOT_uTCA_MIN+6,
63  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
64  vFEDHF.push_back(HcalElectronicsId(32, SLOT_uTCA_MIN,
65  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
66  vFEDHF.push_back(HcalElectronicsId(32, SLOT_uTCA_MIN+6,
67  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
68 
69  // initialize filters
71  vFEDHF);
72 
73  // push the rawIds of each fed into the vector...
74  for (std::vector<int>::const_iterator it=vFEDsVME.begin();
75  it!=vFEDsVME.end(); ++it)
76  _vhashFEDs.push_back(HcalElectronicsId(
78  (*it)-FED_VME_MIN).rawId());
79  for (std::vector<int>::const_iterator it=vFEDsuTCA.begin();
80  it!=vFEDsuTCA.end(); ++it)
81  {
82  std::pair<uint16_t, uint16_t> cspair = utilities::fed2crate(*it);
83  _vhashFEDs.push_back(HcalElectronicsId(
84  cspair.first, cspair.second, FIBER_uTCA_MIN1,
85  FIBERCH_MIN, false).rawId());
86  }
87 
88  // INITIALIZE FIRST
114  _cTimingCut_FEDVME.initialize(_name, "TimingCut",
119  _cTimingCut_FEDuTCA.initialize(_name, "TimingCut",
126  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
131  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
134  _cTimingCutvsLS_FED.initialize(_name, "TimingvsLS",
138  _cTimingCut_depth.initialize(_name, "TimingCut",
143 
144  // Occupancy w/o a cut
145  _cOccupancy_FEDVME.initialize(_name, "Occupancy",
150  _cOccupancy_FEDuTCA.initialize(_name, "Occupancy",
157  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
162  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
165  _cOccupancyvsLS_Subdet.initialize(_name, "OccupancyvsLS",
169  _cOccupancy_depth.initialize(_name, "Occupancy",
174 
175  // Occupancy w/ a cut
176  _cOccupancyCut_FEDVME.initialize(_name, "OccupancyCut",
181  _cOccupancyCut_FEDuTCA.initialize(_name, "OccupancyCut",
188  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
193  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
196  _cOccupancyCutvsLS_Subdet.initialize(_name, "OccupancyCutvsLS",
200  _cOccupancyCut_depth.initialize(_name, "OccupancyCut",
205 
206  _cDigiSize_FED.initialize(_name, "DigiSize",
210 
211  // INITIALIZE HISTOGRAMS that are only for Online
212  if (_ptype==fOnline)
213  {
214  std::vector<uint32_t> vhashHF;
215  vhashHF.push_back(HcalDetId(HcalForward, 31,1,1).rawId());
217  vhashHF);
218 
219  // Charge sharing
228  _cDigiSizevsLS_FED.initialize(_name, "DigiSizevsLS",
232  _cTimingCutvsiphi_SubdetPM.initialize(_name, "TimingCutvsiphi",
236  _cTimingCutvsieta_Subdet.initialize(_name, "TimingCutvsieta",
240  _cOccupancyvsiphi_SubdetPM.initialize(_name, "Occupancyvsiphi",
244  _cOccupancyvsieta_Subdet.initialize(_name, "Occupancyvsieta",
248  _cOccupancyCutvsiphi_SubdetPM.initialize(_name, "OccupancyCutvsiphi",
252  _cOccupancyCutvsieta_Subdet.initialize(_name, "OccupancyCutvsieta",
256  _cOccupancyCutvsLS_Subdet.initialize(_name, "OccupancyCutvsLS",
260  _cOccupancyCutvsBX_Subdet.initialize(_name, "OccupancyCutvsBX",
264 // _cOccupancyCutvsSlotvsLS_HFPM.initialize(_name,
265 // "OccupancyCutvsSlotvsLS", hcaldqm::hashfunctions::fSubdetPM,
266 // new hcaldqm::quantity::LumiSection(_maxLS),
267 // new hcaldqm::quantity::ElectronicsQuantity(hcaldqm::quantity::fSlotuTCA),
268 // new hcaldqm::quantity::ValueQuantity(hcaldqm::quantity::fN));
270  "OccupancyCutvsiphivsLS", hcaldqm::hashfunctions::fSubdetPM,
274  _cSummaryvsLS_FED.initialize(_name, "SummaryvsLS",
279  _cSummaryvsLS.initialize(_name, "SummaryvsLS",
283 
289  }
290 
291  // BOOK HISTOGRAMS
292  char cutstr[200];
293  sprintf(cutstr, "_SumQHBHE%dHO%dHF%d", int(_cutSumQ_HBHE),
294  int(_cutSumQ_HO), int(_cutSumQ_HF));
295  char cutstr2[200];
296  sprintf(cutstr2, "_SumQHF%d", int(_cutSumQ_HF));
297 
299 
304 
306 
314 
326 
328 
329  // BOOK HISTOGRAMS that are only for Online
332  if (_ptype==fOnline)
333  {
345 // _cOccupancyCutvsSlotvsLS_HFPM.book(ib, _emap, _filter_HF, _subsystem);
349 
351  _xNChs.book(_emap);
353  _xUni.book(_emap);
355 
356  // just PER HF FED RECORD THE #CHANNELS
357  // ONLY WAY TO DO THAT AUTOMATICALLY AND W/O HARDCODING 1728
358  // or ANY OTHER VALUES LIKE 2592, 2192
359  std::vector<HcalGenericDetId> gids = _emap->allPrecisionId();
360  for (std::vector<HcalGenericDetId>::const_iterator it=gids.begin();
361  it!=gids.end(); ++it)
362  {
363  if (!it->isHcalDetId())
364  continue;
365  HcalDetId did(it->rawId());
366  if (_xQuality.exists(did))
367  {
368  HcalChannelStatus cs(it->rawId(), _xQuality.get(
369  HcalDetId(*it)));
370  if (
373  continue;
374  }
376  _xNChsNominal.get(eid)++; // he will know the nominal #channels per FED
377  }
378  }
379 
380  // MARK THESE HISTOGRAMS AS LUMI BASED FOR OFFLINE PROCESSING
381  if (_ptype==fOffline)
382  {
385  }
386 
387  // book Number of Events vs LS histogram
388  ib.setCurrentFolder(_subsystem+"/RunInfo");
389  meNumEvents1LS = ib.book1D("NumberOfEvents", "NumberOfEvents",
390  1, 0, 1);
392 
393  // book the flag for unknown ids and the online guy as well
395  meUnknownIds1LS = ib.book1D("UnknownIds", "UnknownIds",
396  1, 0, 1);
397  _unknownIdsPresent = false;
399 }
400 
402 {
403  DQTask::_resetMonitors(uf);
404 
405  switch(uf)
406  {
407  case hcaldqm::f1LS:
408  _unknownIdsPresent = false;
409  break;
410  case hcaldqm::f50LS:
411  // ^^^ONLINE ONLY!
412  if (_ptype==fOnline)
414  // ^^^
415  break;
416  default:
417  break;
418  }
419 }
420 
421 /* virtual */ void DigiTask::_process(edm::Event const& e,
422  edm::EventSetup const&)
423 {
427 
428  if (!e.getByToken(_tokHBHE, chbhe))
429  _logger.dqmthrow("Collection HBHEDigiCollection isn't available"
430  + _tagHBHE.label() + " " + _tagHBHE.instance());
431  if (!e.getByToken(_tokHO, cho))
432  _logger.dqmthrow("Collection HODigiCollection isn't available"
433  + _tagHO.label() + " " + _tagHO.instance());
434  if (!e.getByToken(_tokHF, chf))
435  _logger.dqmthrow("Collection HFDigiCollection isn't available"
436  + _tagHF.label() + " " + _tagHF.instance());
437 
438  // extract some info per event
439  int bx = e.bunchCrossing();
440  meNumEvents1LS->Fill(0.5); // just increment
441 
442  // To fill histograms outside of the loop, you need to determine if there were
443  // any valid det ids first
444  uint32_t rawidValid = 0;
445  uint32_t rawidHBValid = 0;
446  uint32_t rawidHEValid = 0;
447 
448  // HB collection
449  int numChs = 0;
450  int numChsCut = 0;
451  int numChsHE = 0;
452  int numChsCutHE = 0;
453  for (HBHEDigiCollection::const_iterator it=chbhe->begin(); it!=chbhe->end();
454  ++it)
455  {
456  double sumQ = hcaldqm::utilities::sumQ<HBHEDataFrame>(*it, 2.5, 0, it->size()-1);
457 
458  // Explicit check on the DetIds present in the Collection
459  HcalDetId const& did = it->id();
460  uint32_t rawid = _ehashmap.lookup(did);
461  if (rawid==0)
462  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
463  HcalElectronicsId const& eid(rawid);
464  if (did.subdet()==HcalBarrel)
465  rawidHBValid = did.rawId();
466  else if (did.subdet()==HcalEndcap)
467  rawidHEValid = did.rawId();
468 
469  // filter out channels that are masked out
470  if (_xQuality.exists(did))
471  {
472  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
473  if (
476  continue;
477  }
478 
479  _cSumQ_SubdetPM.fill(did, sumQ);
480  _cOccupancy_depth.fill(did);
481  if (_ptype==fOnline)
482  {
483  _cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
484  it->size()!=constants::DIGISIZE[did.subdet()-1]?
485  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
488  }
489  _cDigiSize_FED.fill(eid, it->size());
490  if (eid.isVMEid())
491  {
494  }
495  else
496  {
499  /*
500  if (!it->validate(0, it->size()))
501  {
502  _cCapIdRots_depth.fill(did);
503  _cCapIdRots_FEDuTCA.fill(eid, 1);
504  }*/
505  }
506 
507  for (int i=0; i<it->size(); i++)
508  {
509  _cADC_SubdetPM.fill(did, it->sample(i).adc());
510  _cfC_SubdetPM.fill(did, it->sample(i).nominal_fC());
511  if (sumQ>_cutSumQ_HBHE)
512  _cShapeCut_FED.fill(eid, i, it->sample(i).nominal_fC());
513  }
514 
515  if (sumQ>_cutSumQ_HBHE)
516  {
517  double timing = hcaldqm::utilities::aveTS<HBHEDataFrame>(*it, 2.5, 0,
518  it->size()-1);
519  _cTimingCut_SubdetPM.fill(did, timing);
520  _cTimingCut_depth.fill(did, timing);
522  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
523  _cSumQ_depth.fill(did, sumQ);
524  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
525  if (_ptype==fOnline)
526  {
527  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
528  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
529  _cTimingCutvsieta_Subdet.fill(did, timing);
533  }
534  if (eid.isVMEid())
535  {
536  _cTimingCut_FEDVME.fill(eid, timing);
537  _cTimingCut_ElectronicsVME.fill(eid, timing);
540  }
541  else
542  {
543  _cTimingCut_FEDuTCA.fill(eid, timing);
544  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
547  }
548  did.subdet()==HcalBarrel?numChsCut++:numChsCutHE++;
549  }
550  did.subdet()==HcalBarrel?numChs++:numChsHE++;
551  }
552 
553  if (rawidHBValid!=0 && rawidHEValid!=0)
554  {
556  numChs);
558  numChsHE);
559  // ONLINE ONLY!
560  if (_ptype==fOnline)
561  {
563  _currentLS, numChsCut);
564  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidHBValid), bx,
565  numChsCut);
567  _currentLS, numChsCutHE);
568  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidHEValid), bx,
569  numChsCutHE);
570  }
571  // ^^^ONLINE ONLY!
572  }
573  numChs=0;
574  numChsCut = 0;
575 
576  // reset
577  rawidValid = 0;
578 
579  // HO collection
580  for (HODigiCollection::const_iterator it=cho->begin(); it!=cho->end();
581  ++it)
582  {
583  double sumQ = hcaldqm::utilities::sumQ<HODataFrame>(*it, 8.5, 0, it->size()-1);
584 
585  // Explicit check on the DetIds present in the Collection
586  HcalDetId const& did = it->id();
587  uint32_t rawid = _ehashmap.lookup(did);
588  if (rawid==0)
589  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
590  HcalElectronicsId const& eid(rawid);
591  if (did.subdet()==HcalOuter)
592  rawidValid = did.rawId();
593 
594  // filter out channels that are masked out
595  if (_xQuality.exists(did))
596  {
597  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
598  if (
601  continue;
602  }
603 
604  _cSumQ_SubdetPM.fill(did, sumQ);
605  _cOccupancy_depth.fill(did);
606  if (_ptype==fOnline)
607  {
608  _cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
609  it->size()!=constants::DIGISIZE[did.subdet()-1]?
610  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
613  }
614  _cDigiSize_FED.fill(eid, it->size());
615  if (eid.isVMEid())
616  {
619  /*
620  if (!it->validate(0, it->size()))
621  _cCapIdRots_FEDVME.fill(eid, 1);
622  */
623  }
624  else
625  {
628  /*
629  if (!it->validate(0, it->size()))
630  _cCapIdRots_FEDuTCA.fill(eid, 1);*/
631  }
632 
633  for (int i=0; i<it->size(); i++)
634  {
635  _cADC_SubdetPM.fill(did, it->sample(i).adc());
636  _cfC_SubdetPM.fill(did, it->sample(i).nominal_fC());
637  if (sumQ>_cutSumQ_HO)
638  _cShapeCut_FED.fill(eid, i, it->sample(i).nominal_fC());
639  }
640 
641  if (sumQ>_cutSumQ_HO)
642  {
643  double timing = hcaldqm::utilities::aveTS<HODataFrame>(*it, 8.5, 0,
644  it->size()-1);
645  _cSumQ_depth.fill(did, sumQ);
646  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
648  _cTimingCut_SubdetPM.fill(did, timing);
649  _cTimingCut_depth.fill(did, timing);
650  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
651  if (_ptype==fOnline)
652  {
653  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
654  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
655  _cTimingCutvsieta_Subdet.fill(did, timing);
659  }
660  if (eid.isVMEid())
661  {
662  _cTimingCut_FEDVME.fill(eid, timing);
663  _cTimingCut_ElectronicsVME.fill(eid, timing);
666  }
667  else
668  {
669  _cTimingCut_FEDuTCA.fill(eid, timing);
670  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
673  }
674  numChsCut++;
675  }
676  numChs++;
677  }
678 
679  if (rawidValid!=0)
680  {
682  numChs);
683 
684  if (_ptype==fOnline)
685  {
687  _currentLS, numChsCut);
688  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidValid), bx,
689  numChsCut);
690  }
691  }
692  numChs=0; numChsCut=0;
693 
694  // reset
695  rawidValid = 0;
696 
697  // HF collection
698  for (HFDigiCollection::const_iterator it=chf->begin(); it!=chf->end();
699  ++it)
700  {
701  double sumQ = hcaldqm::utilities::sumQ<HFDataFrame>(*it, 2.5, 0, it->size()-1);
702 
703  // Explicit check on the DetIds present in the Collection
704  HcalDetId const& did = it->id();
705  uint32_t rawid = _ehashmap.lookup(did);
706  if (rawid==0)
707  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
708  HcalElectronicsId const& eid(rawid);
709  if (did.subdet()==HcalForward)
710  rawidValid = did.rawId();
711 
712  // filter out channels that are masked out
713  if (_xQuality.exists(did))
714  {
715  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
716  if (
719  continue;
720  }
721 
722  _cSumQ_SubdetPM.fill(did, sumQ);
723  _cOccupancy_depth.fill(did);
724  if (_ptype==fOnline)
725  {
726  _xNChs.get(eid)++;
727  _cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
728  it->size()!=constants::DIGISIZE[did.subdet()-1]?
729  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
732  }
733  _cDigiSize_FED.fill(eid, it->size());
734  if (eid.isVMEid())
735  {
738  /*
739  if (!it->validate(0, it->size()))
740  _cCapIdRots_FEDVME.fill(eid, 1);*/
741  }
742  else
743  {
746  /*
747  if (!it->validate(0, it->size()))
748  _cCapIdRots_FEDuTCA.fill(eid, 1);*/
749  }
750 
751  for (int i=0; i<it->size(); i++)
752  {
753  _cADC_SubdetPM.fill(did, it->sample(i).adc());
754  _cfC_SubdetPM.fill(did, it->sample(i).nominal_fC());
755  if (sumQ>_cutSumQ_HF)
756  _cShapeCut_FED.fill(eid, i, it->sample(i).nominal_fC());
757  }
758 
759  if (sumQ>_cutSumQ_HF)
760  {
761  double timing = hcaldqm::utilities::aveTS<HFDataFrame>(*it, 2.5, 0,
762  it->size()-1);
763  double q1 = it->sample(1).nominal_fC()-2.5;
764  double q2 = it->sample(2).nominal_fC()-2.5;
765  double q2q12 = q2/(q1+q2);
766  _cSumQ_depth.fill(did, sumQ);
767  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
768  if (_ptype==fOnline)
769  {
770  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
771  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
772  _cTimingCutvsieta_Subdet.fill(did, timing);
776 // _cOccupancyCutvsSlotvsLS_HFPM.fill(did, _currentLS);
777  _xUniHF.get(eid)++;
778  }
779  _cTimingCut_SubdetPM.fill(did, timing);
780  _cTimingCut_depth.fill(did, timing);
781  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
783  if (!eid.isVMEid())
784  if (_ptype==fOnline)
785  _cQ2Q12CutvsLS_FEDHF.fill(eid, _currentLS, q2q12);
786  if (eid.isVMEid())
787  {
788  _cTimingCut_FEDVME.fill(eid, timing);
789  _cTimingCut_ElectronicsVME.fill(eid, timing);
792  }
793  else
794  {
795  _cTimingCut_FEDuTCA.fill(eid, timing);
796  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
799  }
800  numChsCut++;
801  }
802  numChs++;
803  }
804 
805  if (rawidValid!=0)
806  {
808  numChs);
809 
810  if (_ptype==fOnline)
811  {
813  _currentLS, numChsCut);
814  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidValid), bx,
815  numChsCut);
816  }
817  }
818 }
819 
821  edm::LuminosityBlock const& lb, edm::EventSetup const& es)
822 {
823  DQTask::beginLuminosityBlock(lb, es);
824 }
825 
827  edm::EventSetup const& es)
828 {
829  if (_ptype!=fOnline)
830  return;
831 
832  for (uintCompactMap::const_iterator it=_xUniHF.begin();
833  it!=_xUniHF.end(); ++it)
834  {
835  uint32_t hash1 = it->first;
836  HcalElectronicsId eid1(hash1);
837  double x1 = it->second;
838 
839  for (uintCompactMap::const_iterator jt=_xUniHF.begin();
840  jt!=_xUniHF.end(); ++jt)
841  {
842  if (jt==it)
843  continue;
844  double x2 = jt->second;
845  if (x2==0)
846  continue;
847  if (x1/x2<_thresh_unihf)
848  _xUni.get(eid1)++;
849  }
850  }
851 
852  for (std::vector<uint32_t>::const_iterator it=_vhashFEDs.begin();
853  it!=_vhashFEDs.end(); ++it)
854  {
855  hcaldqm::flag::Flag fSum("DIGI");
857 
858  std::vector<uint32_t>::const_iterator cit=std::find(
859  _vcdaqEids.begin(), _vcdaqEids.end(), *it);
860  if (cit==_vcdaqEids.end())
861  {
862  // not @cDAQ
863  for (uint32_t iflag=0; iflag<_vflags.size(); iflag++)
864  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, int(iflag),
865  int(hcaldqm::flag::fNCDAQ));
867  continue;
868  }
869 
870  // FED is @cDAQ
873  {
874  if (_xDigiSize.get(eid)>0)
876  else
879  {
880  double fr = double(_xNChs.get(eid))/double(
882  if (_runkeyVal==0 || _runkeyVal==4)
883  {
884  // only for pp or hi
885  if (_xUni.get(eid)>0)
887  else
889  }
890  if (fr<0.95)
892  else if (fr<1.0)
894  else
896  }
897  }
898  if (_unknownIdsPresent)
900  else
902 
903  int iflag=0;
904  for (std::vector<hcaldqm::flag::Flag>::iterator ft=_vflags.begin();
905  ft!=_vflags.end(); ++ft)
906  {
908  int(ft->_state));
909  fSum+=(*ft);
910  iflag++;
911 
912  // reset!
913  ft->reset();
914  }
916  }
917 
919  _xNChs.reset();
920 
921  // in the end always do the DQTask::endLumi
922  DQTask::endLuminosityBlock(lb, es);
923 }
924 
926 
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
edm::InputTag _tagHO
Definition: DigiTask.h:47
std::pair< uint16_t, uint16_t > fed2crate(int fed)
Definition: Utilities.cc:13
uint32_t rawId() const
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:820
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:78
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:401
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:131
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:54
std::vector< int > getFEDuTCAList(HcalElectronicsMap const *)
Definition: Utilities.cc:104
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:826
bool isFEDHO(HcalElectronicsId const &)
Definition: Utilities.cc:178
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:421
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:153
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