CMS 3D CMS Logo

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"));
17  edm::InputTag("hcalDigis"));
18 
19  _tokHBHE = consumes<HBHEDigiCollection>(_tagHBHE);
20  _tokHEP17 = consumes<QIE11DigiCollection>(_tagHEP17);
21  _tokHO = consumes<HODigiCollection>(_tagHO);
22  _tokHF = consumes<QIE10DigiCollection>(_tagHF);
23 
24  _cutSumQ_HBHE = ps.getUntrackedParameter<double>("cutSumQ_HBHE", 20);
25  _cutSumQ_HEP17 = ps.getUntrackedParameter<double>("cutSumQ_HEP17", 20);
26  _cutSumQ_HO = ps.getUntrackedParameter<double>("cutSumQ_HO", 20);
27  _cutSumQ_HF = ps.getUntrackedParameter<double>("cutSumQ_HF", 20);
28  _thresh_unihf = ps.getUntrackedParameter<double>("thresh_unihf", 0.2);
29 
30  _vflags.resize(nDigiFlag);
31  _vflags[fUni]=hcaldqm::flag::Flag("UniSlotHF");
35 
36  _qie10InConditions = ps.getUntrackedParameter<bool>("qie10InConditions", true);
37 }
38 
40  edm::Run const& r, edm::EventSetup const& es)
41 {
42  DQTask::bookHistograms(ib,r,es);
43 
44  // GET WHAT YOU NEED
46  es.get<HcalDbRecord>().get(dbs);
47  _emap = dbs->getHcalMapping();
48  std::vector<uint32_t> vVME;
49  std::vector<uint32_t> vuTCA;
53  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
55  vVME);
57  vuTCA);
58 
59  // Filters for HEP17 and HF, aka QIE10/11
60  std::vector<uint32_t> vhashHF;
63  vhashHF);
65  vhashHF);
66 
67  std::vector<uint32_t> vhashHEP17;
68  vhashHEP17.push_back(HcalDetId(HcalEndcap, 1, 63, 1));
69  vhashHEP17.push_back(HcalDetId(HcalEndcap, 1, 64, 1));
70  vhashHEP17.push_back(HcalDetId(HcalEndcap, 1, 65, 1));
71  vhashHEP17.push_back(HcalDetId(HcalEndcap, 1, 66, 1));
73 
74  // INITIALIZE FIRST
92 
106 
111  _cTimingCut_depth.initialize(_name, "TimingCut",
120 
121  // Occupancy w/o a cut
122  _cOccupancyvsLS_Subdet.initialize(_name, "OccupancyvsLS",
126  _cOccupancy_depth.initialize(_name, "Occupancy",
131 
132  // Occupancy w/ a cut
133  _cOccupancyCutvsLS_Subdet.initialize(_name, "OccupancyCutvsLS",
137  _cOccupancyCut_depth.initialize(_name, "OccupancyCut",
142 
143  // Digi size
144  _cDigiSize_Crate.initialize(_name, "DigiSize",
158  _cLETDCTimevsADC_SubdetPM.initialize(_name, "LETDCTimevsADC",
163  _cLETDCvsADC_SubdetPM.initialize(_name, "LETDCvsADC",
168  _cLETDCvsTS_SubdetPM.initialize(_name, "LETDCvsTS",
177 
178  if (_ptype == fOnline || _ptype == fLocal) {
180  "Occupancy", hashfunctions::fCrate,
185  "Occupancy", hashfunctions::fCrateSlot,
189  }
190 
191  // INITIALIZE HISTOGRAMS that are only for Online
192  if (_ptype==fOnline)
193  {
194  // Charge sharing
207  _cDigiSizevsLS_FED.initialize(_name, "DigiSizevsLS",
211  _cTimingCutvsiphi_SubdetPM.initialize(_name, "TimingCutvsiphi",
215  _cTimingCutvsieta_Subdet.initialize(_name, "TimingCutvsieta",
219  _cOccupancyvsiphi_SubdetPM.initialize(_name, "Occupancyvsiphi",
223  _cOccupancyvsieta_Subdet.initialize(_name, "Occupancyvsieta",
227  _cOccupancyCutvsiphi_SubdetPM.initialize(_name, "OccupancyCutvsiphi",
231  _cOccupancyCutvsieta_Subdet.initialize(_name, "OccupancyCutvsieta",
235  _cOccupancyCutvsLS_Subdet.initialize(_name, "OccupancyCutvsLS",
239  _cOccupancyCutvsBX_Subdet.initialize(_name, "OccupancyCutvsBX",
243 // _cOccupancyCutvsSlotvsLS_HFPM.initialize(_name,
244 // "OccupancyCutvsSlotvsLS", hcaldqm::hashfunctions::fSubdetPM,
245 // new hcaldqm::quantity::LumiSection(_maxLS),
246 // new hcaldqm::quantity::ElectronicsQuantity(hcaldqm::quantity::fSlotuTCA),
247 // new hcaldqm::quantity::ValueQuantity(hcaldqm::quantity::fN),0);
249  "OccupancyCutvsiphivsLS", hcaldqm::hashfunctions::fSubdetPM,
253  }
254  if (_ptype != fOffline) { // hidefed2crate
255  std::vector<int> vFEDs = hcaldqm::utilities::getFEDList(_emap);
256  std::vector<int> vFEDsVME = hcaldqm::utilities::getFEDVMEList(_emap);
257  std::vector<int> vFEDsuTCA = hcaldqm::utilities::getFEDuTCAList(_emap);
258 
259  std::vector<uint32_t> vFEDHF;
260  vFEDHF.push_back(HcalElectronicsId(22, SLOT_uTCA_MIN,
261  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
262  vFEDHF.push_back(HcalElectronicsId(22, SLOT_uTCA_MIN+6,
263  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
264  vFEDHF.push_back(HcalElectronicsId(29, SLOT_uTCA_MIN,
265  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
266  vFEDHF.push_back(HcalElectronicsId(29, SLOT_uTCA_MIN+6,
267  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
268  vFEDHF.push_back(HcalElectronicsId(32, SLOT_uTCA_MIN,
269  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
270  vFEDHF.push_back(HcalElectronicsId(32, SLOT_uTCA_MIN+6,
271  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
272 
273  // initialize filters
275  vFEDHF);
276 
277  // push the rawIds of each fed into the vector...
278  for (std::vector<int>::const_iterator it=vFEDsVME.begin();
279  it!=vFEDsVME.end(); ++it)
280  _vhashFEDs.push_back(HcalElectronicsId(
282  (*it)-FED_VME_MIN).rawId());
283  for (std::vector<int>::const_iterator it=vFEDsuTCA.begin();
284  it!=vFEDsuTCA.end(); ++it)
285  {
286  std::pair<uint16_t, uint16_t> cspair = utilities::fed2crate(*it);
287  _vhashFEDs.push_back(HcalElectronicsId(
288  cspair.first, cspair.second, FIBER_uTCA_MIN1,
289  FIBERCH_MIN, false).rawId());
290  }
291 
292  _cShapeCut_FED.initialize(_name, "ShapeCut",
296 
297  _cTimingCut_FEDVME.initialize(_name, "TimingCut",
302  _cTimingCut_FEDuTCA.initialize(_name, "TimingCut",
309  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
314  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
317  _cTimingCutvsLS_FED.initialize(_name, "TimingvsLS",
321 
322  _cOccupancy_FEDVME.initialize(_name, "Occupancy",
327  _cOccupancy_FEDuTCA.initialize(_name, "Occupancy",
334  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
339  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
342 
343  _cOccupancyCut_FEDVME.initialize(_name, "OccupancyCut",
348  _cOccupancyCut_FEDuTCA.initialize(_name, "OccupancyCut",
355  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
360  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
363 
364  _cDigiSize_FED.initialize(_name, "DigiSize",
368 
369  if (_ptype == fOnline) {
370  _cSummaryvsLS_FED.initialize(_name, "SummaryvsLS",
375  _cSummaryvsLS.initialize(_name, "SummaryvsLS",
379 
385  }
386  }
387 
388  // BOOK HISTOGRAMS
389  char cutstr[200];
390  sprintf(cutstr, "_SumQHBHE%dHO%dHF%d", int(_cutSumQ_HBHE),
391  int(_cutSumQ_HO), int(_cutSumQ_HF));
392  char cutstr2[200];
393  sprintf(cutstr2, "_SumQHF%d", int(_cutSumQ_HF));
394 
407 
408  if (_ptype != fOffline) { // hidefed2crate
424  }
425 
429 
433 
438 
439  // BOOK HISTOGRAMS that are only for Online
442 
443  if (_ptype == fOnline || _ptype == fLocal) {
446  }
447 
448  if (_ptype==fOnline)
449  {
462 // _cOccupancyCutvsSlotvsLS_HFPM.book(ib, _emap, _filter_HF, _subsystem);
466 
468  _xNChs.book(_emap);
470  _xUni.book(_emap);
472 
473  // just PER HF FED RECORD THE #CHANNELS
474  // ONLY WAY TO DO THAT AUTOMATICALLY AND W/O HARDCODING 1728
475  // or ANY OTHER VALUES LIKE 2592, 2192
476  std::vector<HcalGenericDetId> gids = _emap->allPrecisionId();
477  for (std::vector<HcalGenericDetId>::const_iterator it=gids.begin();
478  it!=gids.end(); ++it)
479  {
480  if (!it->isHcalDetId())
481  continue;
482  HcalDetId did(it->rawId());
483  if (_xQuality.exists(did))
484  {
485  HcalChannelStatus cs(it->rawId(), _xQuality.get(
486  HcalDetId(*it)));
487  if (
490  continue;
491  }
493  _xNChsNominal.get(eid)++; // he will know the nominal #channels per FED
494  }
495  }
496 
497  // MARK THESE HISTOGRAMS AS LUMI BASED FOR OFFLINE PROCESSING
498  if (_ptype==fOffline)
499  {
501  //_cDigiSize_FED.setLumiFlag();
503  }
504 
505  // book Number of Events vs LS histogram
506  ib.setCurrentFolder(_subsystem+"/RunInfo");
507  meNumEvents1LS = ib.book1D("NumberOfEvents", "NumberOfEvents",
508  1, 0, 1);
510 
511  // book the flag for unknown ids and the online guy as well
513  meUnknownIds1LS = ib.book1D("UnknownIds", "UnknownIds",
514  1, 0, 1);
515  _unknownIdsPresent = false;
517 }
518 
520 {
521  DQTask::_resetMonitors(uf);
522 
523  switch(uf)
524  {
525  case hcaldqm::f1LS:
526  _unknownIdsPresent = false;
527  break;
528  case hcaldqm::f50LS:
529  // ^^^ONLINE ONLY!
530  if (_ptype==fOnline)
532  // ^^^
533  break;
534  default:
535  break;
536  }
537 }
538 
539 /* virtual */ void DigiTask::_process(edm::Event const& e,
540  edm::EventSetup const&)
541 {
546 
547  if (!e.getByToken(_tokHBHE, chbhe))
548  _logger.dqmthrow("Collection HBHEDigiCollection isn't available"
549  + _tagHBHE.label() + " " + _tagHBHE.instance());
550  if (!e.getByToken(_tokHEP17, chep17))
551  _logger.dqmthrow("Collection HEP17DigiCollection isn't available"
552  + _tagHEP17.label() + " " + _tagHEP17.instance());
553  if (!e.getByToken(_tokHO, cho))
554  _logger.dqmthrow("Collection HODigiCollection isn't available"
555  + _tagHO.label() + " " + _tagHO.instance());
556  if (!e.getByToken(_tokHF, chf))
557  _logger.dqmthrow("Collection QIE10DigiCollection isn't available"
558  + _tagHF.label() + " " + _tagHF.instance());
559 
560  // extract some info per event
561  int bx = e.bunchCrossing();
562  meNumEvents1LS->Fill(0.5); // just increment
563 
564  // To fill histograms outside of the loop, you need to determine if there were
565  // any valid det ids first
566  uint32_t rawidValid = 0;
567  uint32_t rawidHBValid = 0;
568  uint32_t rawidHEValid = 0;
569 
570  // HB collection
571  int numChs = 0;
572  int numChsCut = 0;
573  int numChsHE = 0;
574  int numChsCutHE = 0;
575  for (HBHEDigiCollection::const_iterator it=chbhe->begin(); it!=chbhe->end();
576  ++it)
577  {
578  // Explicit check on the DetIds present in the Collection
579  HcalDetId const& did = it->id();
580  if (did.subdet() != HcalBarrel) {
581  continue;
582  }
583  uint32_t rawid = _ehashmap.lookup(did);
584  if (rawid==0)
585  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
586  HcalElectronicsId const& eid(rawid);
587  if (did.subdet()==HcalBarrel)
588  rawidHBValid = did.rawId();
589  else if (did.subdet()==HcalEndcap)
590  rawidHEValid = did.rawId();
591 
592  //double sumQ = hcaldqm::utilities::sumQ<HBHEDataFrame>(*it, 2.5, 0, it->size()-1);
593  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<HBHEDataFrame>(_dbService, did, *it);
594  double sumQ = hcaldqm::utilities::sumQDB<HBHEDataFrame>(_dbService, digi_fC, did, *it, 0, it->size()-1);
595 
596  // filter out channels that are masked out
597  if (_xQuality.exists(did))
598  {
599  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
600  if (
603  continue;
604  }
605 
606  _cSumQ_SubdetPM.fill(did, sumQ);
607  _cOccupancy_depth.fill(did);
608  if (_ptype == fOnline || _ptype == fLocal) {
609  _cOccupancy_Crate.fill(eid);
611  }
612  if (_ptype==fOnline)
613  {
614  _cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
615  it->size()!=constants::DIGISIZE[did.subdet()-1]?
616  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
619  }
620  _cDigiSize_Crate.fill(eid, it->size());
621  if (_ptype != fOffline) { // hidefed2crate
622  _cDigiSize_FED.fill(eid, it->size());
623  if (eid.isVMEid())
624  {
627  }
628  else
629  {
632  /*
633  if (!it->validate(0, it->size()))
634  {
635  _cCapIdRots_depth.fill(did);
636  _cCapIdRots_FEDuTCA.fill(eid, 1);
637  }*/
638  }
639  }
640 
641  for (int i=0; i<it->size(); i++)
642  {
643  _cADC_SubdetPM.fill(did, it->sample(i).adc());
644  _cfC_SubdetPM.fill(did, it->sample(i).nominal_fC());
645  if (_ptype != fOffline) { // hidefed2crate
646  _cADCvsTS_SubdetPM.fill(did, i, it->sample(i).nominal_fC());
647  if (sumQ>_cutSumQ_HBHE) {
648  _cShapeCut_FED.fill(eid, i, it->sample(i).nominal_fC());
649  }
650  }
651  }
652 
653  if (sumQ>_cutSumQ_HBHE)
654  {
655  //double timing = hcaldqm::utilities::aveTS<HBHEDataFrame>(*it, 2.5, 0, it->size()-1);
656  double timing = hcaldqm::utilities::aveTSDB<HBHEDataFrame>(_dbService, digi_fC, did, *it, 0, it->size()-1);
657  _cTimingCut_SubdetPM.fill(did, timing);
658  _cTimingCut_depth.fill(did, timing);
661  if (_ptype != fOffline) { // hidefed2crate
662  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
663  }
664  _cSumQ_depth.fill(did, sumQ);
665  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
666  if (_ptype==fOnline)
667  {
668  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
669  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
670  _cTimingCutvsieta_Subdet.fill(did, timing);
674  }
675  if (_ptype != fOffline) { // hidefed2crate
676  if (eid.isVMEid())
677  {
678  _cTimingCut_FEDVME.fill(eid, timing);
679  _cTimingCut_ElectronicsVME.fill(eid, timing);
682  }
683  else
684  {
685  _cTimingCut_FEDuTCA.fill(eid, timing);
686  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
689  }
690  }
691  did.subdet()==HcalBarrel?numChsCut++:numChsCutHE++;
692  }
693  did.subdet()==HcalBarrel?numChs++:numChsHE++;
694  }
695 
696  // HEP17 collection
697  // The following are filled w.r.t. HBHE digis
698  // - All eta-phi maps
699  // - Occupancy in electronics coordinates
700  // - Digi size
701  //
702  // The following are not filled:
703  // - ADC, fC, sumQ, timing. These are different for QIE11 vs. QIE8. Find them in QIE11Task instead.
704  for (QIE11DigiCollection::const_iterator it=chep17->begin(); it!=chep17->end();
705  ++it)
706  {
707  const QIE11DataFrame digi = static_cast<const QIE11DataFrame>(*it);
708 
709  // Explicit check on the DetIds present in the Collection
710  HcalDetId const& did = digi.detid();
711  uint32_t rawid = _ehashmap.lookup(did);
712  if (rawid==0) {
713  meUnknownIds1LS->Fill(1);
714  _unknownIdsPresent=true;
715  continue;
716  }
717  HcalElectronicsId const& eid(rawid);
718  if (did.subdet() != HcalEndcap) {
719  continue;
720  }
721  if (did.subdet()==HcalBarrel) { // Note: since this is HE, we obviously expect did.subdet() always to be HcalEndcap, but QIE11DigiCollection will have HB for Run 3.
722  rawidHBValid = did.rawId();
723  } else if (did.subdet()==HcalEndcap) {
724  rawidHEValid = did.rawId();
725  }
726 
727  //double sumQ = hcaldqm::utilities::sumQ_v10<QIE11DataFrame>(digi, 2.5, 0, digi.samples()-1);
728  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<QIE11DataFrame>(_dbService, did, digi);
729  double sumQ = hcaldqm::utilities::sumQDB<QIE11DataFrame>(_dbService, digi_fC, did, digi, 0, digi.samples()-1);
730 
731  // filter out channels that are masked out
732  if (_xQuality.exists(did))
733  {
734  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
735  if (
738  continue;
739  }
740 
741  _cOccupancy_depth.fill(did);
742  if (_ptype==fOnline)
743  {
744  _cDigiSizevsLS_FED.fill(eid, _currentLS, digi.samples());
745  digi.samples()!=constants::DIGISIZE[did.subdet()-1]?
746  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
749  }
750  _cDigiSize_Crate.fill(eid, digi.samples());
751  if (_ptype != fOffline) { // hidefed2crate
752  _cDigiSize_FED.fill(eid, digi.samples());
753  if (eid.isVMEid())
754  {
757  }
758  else
759  {
762  /*
763  if (!digi.validate(0, digi.size()))
764  {
765  _cCapIdRots_depth.fill(did);
766  _cCapIdRots_FEDuTCA.fill(eid, 1);
767  }*/
768  }
769  }
770 
771  if (sumQ>_cutSumQ_HEP17)
772  {
773  //double timing = hcaldqm::utilities::aveTS_v10<QIE11DataFrame>(digi, 2.5, 0,digi.samples()-1);
774  double timing = hcaldqm::utilities::aveTSDB<QIE11DataFrame>(_dbService, digi_fC, did, digi, 0, digi.samples()-1);
775 
777  _cTimingCut_depth.fill(did, timing);
778  _cSumQ_depth.fill(did, sumQ);
779  if (_ptype==fOnline)
780  {
784  }
785  if (_ptype != fOffline) { // hidefed2crate
786  if (eid.isVMEid())
787  {
790  }
791  else
792  {
795  }
796  }
797  did.subdet()==HcalBarrel?numChsCut++:numChsCutHE++;
798  }
799  did.subdet()==HcalBarrel?numChs++:numChsHE++;
800  }
801 
802  if (rawidHBValid!=0 && rawidHEValid!=0)
803  {
805  numChs);
807  numChsHE);
808  // ONLINE ONLY!
809  if (_ptype==fOnline)
810  {
812  _currentLS, numChsCut);
813  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidHBValid), bx,
814  numChsCut);
816  _currentLS, numChsCutHE);
817  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidHEValid), bx,
818  numChsCutHE);
819  }
820  // ^^^ONLINE ONLY!
821  }
822  numChs=0;
823  numChsCut = 0;
824 
825  // reset
826  rawidValid = 0;
827 
828 
829  // HO collection
830  for (HODigiCollection::const_iterator it=cho->begin(); it!=cho->end();
831  ++it)
832  {
833  // Explicit check on the DetIds present in the Collection
834  HcalDetId const& did = it->id();
835  uint32_t rawid = _ehashmap.lookup(did);
836  if (rawid==0)
837  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
838  HcalElectronicsId const& eid(rawid);
839  if (did.subdet()==HcalOuter)
840  rawidValid = did.rawId();
841 
842  //double sumQ = hcaldqm::utilities::sumQ<HODataFrame>(*it, 8.5, 0, it->size()-1);
843  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<HODataFrame>(_dbService, did, *it);
844  double sumQ = hcaldqm::utilities::sumQDB<HODataFrame>(_dbService, digi_fC, did, *it, 0, it->size()-1);
845 
846  // filter out channels that are masked out
847  if (_xQuality.exists(did))
848  {
849  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
850  if (
853  continue;
854  }
855 
856  _cSumQ_SubdetPM.fill(did, sumQ);
857  _cOccupancy_depth.fill(did);
858  if (_ptype==fOnline)
859  {
860  _cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
861  it->size()!=constants::DIGISIZE[did.subdet()-1]?
862  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
865  }
866  _cDigiSize_Crate.fill(eid, it->size());
867  if (_ptype != fOffline) { // hidefed2crate
868  _cDigiSize_FED.fill(eid, it->size());
869  if (eid.isVMEid())
870  {
873  /*
874  if (!it->validate(0, it->size()))
875  _cCapIdRots_FEDVME.fill(eid, 1);
876  */
877  }
878  else
879  {
882  /*
883  if (!it->validate(0, it->size()))
884  _cCapIdRots_FEDuTCA.fill(eid, 1);*/
885  }
886  }
887 
888  for (int i=0; i<it->size(); i++)
889  {
890  _cADC_SubdetPM.fill(did, it->sample(i).adc());
891  _cfC_SubdetPM.fill(did, it->sample(i).nominal_fC());
892  if (_ptype != fOffline) { // hidefed2crate
893  _cADCvsTS_SubdetPM.fill(did, i, it->sample(i).nominal_fC());
894  if (sumQ>_cutSumQ_HO)
895  _cShapeCut_FED.fill(eid, i, it->sample(i).nominal_fC());
896  }
897  }
898 
899  if (sumQ>_cutSumQ_HO)
900  {
901  //double timing = hcaldqm::utilities::aveTS<HODataFrame>(*it, 8.5, 0,it->size()-1);
902  double timing = hcaldqm::utilities::aveTSDB<HODataFrame>(_dbService, digi_fC, did, *it, 0, it->size()-1);
903  _cSumQ_depth.fill(did, sumQ);
904  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
906  _cTimingCut_SubdetPM.fill(did, timing);
907  _cTimingCut_depth.fill(did, timing);
909  if (_ptype != fOffline) { // hidefed2crate
910  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
911  }
912  if (_ptype==fOnline)
913  {
914  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
915  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
916  _cTimingCutvsieta_Subdet.fill(did, timing);
920  }
921  if (_ptype != fOffline) { // hidefed2crate
922  if (eid.isVMEid())
923  {
924  _cTimingCut_FEDVME.fill(eid, timing);
925  _cTimingCut_ElectronicsVME.fill(eid, timing);
928  }
929  else
930  {
931  _cTimingCut_FEDuTCA.fill(eid, timing);
932  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
935  }
936  }
937  numChsCut++;
938  }
939  numChs++;
940  }
941 
942  if (rawidValid!=0)
943  {
945  numChs);
946 
947  if (_ptype==fOnline)
948  {
950  _currentLS, numChsCut);
951  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidValid), bx,
952  numChsCut);
953  }
954  }
955  numChs=0; numChsCut=0;
956 
957  // reset
958  rawidValid = 0;
959 
960  // HF collection
961  if (_qie10InConditions) {
962  for (QIE10DigiCollection::const_iterator it=chf->begin(); it!=chf->end(); ++it) {
963  const QIE10DataFrame digi = static_cast<const QIE10DataFrame>(*it);
964 
965  // Explicit check on the DetIds present in the Collection
966  HcalDetId const& did = digi.detid();
967 
968  // Require subdet == HF. In 2017, calibration channels are included in QIE10DigiCollection :(
969  if (did.subdet() != HcalForward) {
970  continue;
971  }
972 
973  uint32_t rawid = _ehashmap.lookup(did);
974  if (rawid==0) {
975  meUnknownIds1LS->Fill(1);
976  _unknownIdsPresent=true;
977  continue;
978  }
979  HcalElectronicsId const& eid(rawid);
980  if (did.subdet()==HcalForward)
981  rawidValid = did.rawId();
982 
983  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<QIE10DataFrame>(_dbService, did, digi);
984  double sumQ = hcaldqm::utilities::sumQDB<QIE10DataFrame>(_dbService, digi_fC, did, digi, 0, digi.samples()-1);
985  //double sumQ = hcaldqm::utilities::sumQ_v10<QIE10DataFrame>(digi, 2.5, 0, digi.samples()-1);
986 
987 
988  // filter out channels that are masked out
989  if (_xQuality.exists(did))
990  {
991  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
992  if (
995  continue;
996  }
997  if (!_filter_HF.filter(did)) {
998  _cSumQ_SubdetPM_HF.fill(did, sumQ);
999  }
1000  _cOccupancy_depth.fill(did);
1001  if (_ptype==fOnline)
1002  {
1003  _xNChs.get(eid)++;
1004  _cDigiSizevsLS_FED.fill(eid, _currentLS, digi.samples());
1005  digi.samples()!=constants::DIGISIZE[did.subdet()-1]?
1006  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
1009  }
1010  _cDigiSize_Crate.fill(eid, digi.samples());
1011  if (_ptype != fOffline) { // hidefed2crate
1012  _cDigiSize_FED.fill(eid, digi.samples());
1013  if (eid.isVMEid())
1014  {
1015  _cOccupancy_FEDVME.fill(eid);
1017  /*
1018  if (!it->validate(0, it->size()))
1019  _cCapIdRots_FEDVME.fill(eid, 1);*/
1020  }
1021  else
1022  {
1025  /*
1026  if (!it->validate(0, it->size()))
1027  _cCapIdRots_FEDuTCA.fill(eid, 1);*/
1028  }
1029  }
1030 
1031  for (int i=0; i<digi.samples(); i++)
1032  {
1033  double q = hcaldqm::utilities::adc2fCDBMinusPedestal<QIE10DataFrame>(_dbService, digi_fC, did, digi, i);
1034  if (!_filter_HF.filter(did)) {
1035  _cADC_SubdetPM_HF.fill(did, digi[i].adc());
1036  _cfC_SubdetPM_HF.fill(did, q);
1037  _cLETDCvsADC_SubdetPM.fill(did, digi[i].adc(), digi[i].le_tdc());
1038  _cLETDCvsTS_SubdetPM.fill(did, (int)i, digi[i].le_tdc());
1039  if (digi[i].le_tdc() <50) {
1040  double time = i*25. + (digi[i].le_tdc() / 2.);
1041  _cLETDCTime_SubdetPM.fill(did, time);
1042  _cLETDCTimevsADC_SubdetPM.fill(did, digi[i].adc(), time);
1043  }
1044  }
1045 
1046  if (_ptype != fOffline) { // hidefed2crate
1047  _cADCvsTS_SubdetPM_HF.fill(did, (int)i, q);
1048  if (sumQ>_cutSumQ_HF)
1049  _cShapeCut_FED.fill(eid, (int)i, q);
1050  }
1051  }
1052 
1053  if (sumQ>_cutSumQ_HF)
1054  {
1055  double timing = hcaldqm::utilities::aveTS_v10<QIE10DataFrame>(digi, 2.5, 0,
1056  digi.samples()-1);
1057  double q1 = hcaldqm::utilities::adc2fCDBMinusPedestal<QIE10DataFrame>(_dbService, digi_fC, did, digi, 1);
1058  double q2 = hcaldqm::utilities::adc2fCDBMinusPedestal<QIE10DataFrame>(_dbService, digi_fC, did, digi, 2);
1059  double q2q12 = q2/(q1+q2);
1060  _cSumQ_depth.fill(did, sumQ);
1061  if (!_filter_HF.filter(did)) {
1063  }
1064  if (_ptype==fOnline)
1065  {
1066  if (!_filter_HF.filter(did)) {
1067  _cSumQvsBX_SubdetPM_HF.fill(did, bx, sumQ);
1068  }
1069  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
1070  _cTimingCutvsieta_Subdet.fill(did, timing);
1074  // _cOccupancyCutvsSlotvsLS_HFPM.fill(did, _currentLS);
1075  _xUniHF.get(eid)++;
1076  }
1077  _cTimingCut_SubdetPM.fill(did, timing);
1078  _cTimingCut_depth.fill(did, timing);
1080  if (_ptype != fOffline) { // hidefed2crate
1081  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
1082  }
1084  if (!eid.isVMEid())
1085  if (_ptype==fOnline)
1086  _cQ2Q12CutvsLS_FEDHF.fill(eid, _currentLS, q2q12);
1087  if (_ptype != fOffline) { // hidefed2crate
1088  if (eid.isVMEid())
1089  {
1090  _cTimingCut_FEDVME.fill(eid, timing);
1091  _cTimingCut_ElectronicsVME.fill(eid, timing);
1094  }
1095  else
1096  {
1097  _cTimingCut_FEDuTCA.fill(eid, timing);
1098  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
1101  }
1102  }
1103  numChsCut++;
1104  }
1105  numChs++;
1106  }
1107  }
1108 
1109  if (rawidValid!=0)
1110  {
1112  numChs);
1113 
1114  if (_ptype==fOnline)
1115  {
1117  _currentLS, numChsCut);
1118  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidValid), bx,
1119  numChsCut);
1120  }
1121  }
1122 }
1123 
1125  edm::LuminosityBlock const& lb, edm::EventSetup const& es)
1126 {
1127  DQTask::beginLuminosityBlock(lb, es);
1128 }
1129 
1131  edm::EventSetup const& es)
1132 {
1133  if (_ptype!=fOnline)
1134  return;
1135 
1136  for (uintCompactMap::const_iterator it=_xUniHF.begin();
1137  it!=_xUniHF.end(); ++it)
1138  {
1139  uint32_t hash1 = it->first;
1140  HcalElectronicsId eid1(hash1);
1141  double x1 = it->second;
1142 
1143  for (uintCompactMap::const_iterator jt=_xUniHF.begin();
1144  jt!=_xUniHF.end(); ++jt)
1145  {
1146  if (jt==it)
1147  continue;
1148  double x2 = jt->second;
1149  if (x2==0)
1150  continue;
1151  if (x1/x2<_thresh_unihf)
1152  _xUni.get(eid1)++;
1153  }
1154  }
1155 
1156  if (_ptype != fOffline) { // hidefed2crate
1157  for (std::vector<uint32_t>::const_iterator it=_vhashFEDs.begin();
1158  it!=_vhashFEDs.end(); ++it)
1159  {
1160  hcaldqm::flag::Flag fSum("DIGI");
1162 
1163  std::vector<uint32_t>::const_iterator cit=std::find(
1164  _vcdaqEids.begin(), _vcdaqEids.end(), *it);
1165  if (cit==_vcdaqEids.end())
1166  {
1167  // not @cDAQ
1168  for (uint32_t iflag=0; iflag<_vflags.size(); iflag++)
1169  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, int(iflag),
1170  int(hcaldqm::flag::fNCDAQ));
1172  continue;
1173  }
1174 
1175  // FED is @cDAQ
1178  {
1179  if (_xDigiSize.get(eid)>0)
1181  else
1183  if (hcaldqm::utilities::isFEDHF(eid))
1184  {
1185  double fr = double(_xNChs.get(eid))/double(
1186  _xNChsNominal.get(eid)*_evsPerLS);
1187  if (_runkeyVal==0 || _runkeyVal==4)
1188  {
1189  // only for pp or hi
1190  if (_xUni.get(eid)>0)
1192  else
1193  _vflags[fUni]._state = hcaldqm::flag::fGOOD;
1194  }
1195  if (fr<0.95)
1197  else if (fr<1.0)
1199  else
1201  }
1202  }
1203  if (_unknownIdsPresent)
1205  else
1207 
1208  int iflag=0;
1209  for (std::vector<hcaldqm::flag::Flag>::iterator ft=_vflags.begin();
1210  ft!=_vflags.end(); ++ft)
1211  {
1213  int(ft->_state));
1214  fSum+=(*ft);
1215  iflag++;
1216 
1217  // reset!
1218  ft->reset();
1219  }
1221  }
1222  }
1223 
1225  _xNChs.reset();
1226 
1227  // in the end always do the DQTask::endLumi
1228  DQTask::endLuminosityBlock(lb, es);
1229 }
1230 
1232 
int adc(sample_type sample)
get the ADC sample (12 bits)
int samples() const
total number of samples in the digi
DetId detid() const
Get the detector id.
hcaldqm::ContainerProf1D _cTimingCutvsiphi_SubdetPM
Definition: DigiTask.h:116
void _process(edm::Event const &, edm::EventSetup const &) override
Definition: DigiTask.cc:539
hcaldqm::Container1D _cADC_SubdetPM_HF
Definition: DigiTask.h:94
bool _qie10InConditions
Definition: DigiTask.h:175
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meNumEvents1LS
Definition: DigiTask.h:168
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:86
void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
Definition: DigiTask.cc:1130
hcaldqm::Container1D _cOccupancyCutvsieta_Subdet
Definition: DigiTask.h:143
auto_ptr< ClusterSequence > cs
hcaldqm::ContainerProf1D _cSumQvsBX_SubdetPM
Definition: DigiTask.h:91
virtual bool exists(HcalDetId const &)
Definition: ContainerXXX.h:267
int const CRATE_VME_MIN
Definition: Constants.h:111
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:49
edm::InputTag _tagHO
Definition: DigiTask.h:48
hcaldqm::Container2D _cADCvsTS_SubdetPM
Definition: DigiTask.h:103
std::pair< uint16_t, uint16_t > fed2crate(int fed)
Definition: Utilities.cc:12
uint32_t rawId() const
void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
Definition: DigiTask.cc:1124
hcaldqm::Container1D _cfC_SubdetPM_HF
Definition: DigiTask.h:95
hcaldqm::ContainerProf1D _cQ2Q12CutvsLS_FEDHF
Definition: DigiTask.h:120
MonitorElement * meUnknownIds1LS
Definition: DigiTask.h:169
edm::EDGetTokenT< HBHEDigiCollection > _tokHBHE
Definition: DigiTask.h:50
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:508
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
hcaldqm::Container2D _cLETDCTimevsADC_SubdetPM
Definition: DigiTask.h:162
double _cutSumQ_HO
Definition: DigiTask.h:55
virtual CompactMap::const_iterator begin()
Definition: ContainerXXX.h:75
double _thresh_unihf
Definition: DigiTask.h:56
UpdateFreq
Definition: DQTask.h:17
State _state
Definition: Flag.h:79
std::vector< HBHEDataFrame >::const_iterator const_iterator
int bunchCrossing() const
Definition: EventBase.h:66
int const SPIGOT_MIN
Definition: Constants.h:136
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
hcaldqm::ContainerProf2D _cSumQ_depth
Definition: DigiTask.h:89
edm::EDGetTokenT< HODigiCollection > _tokHO
Definition: DigiTask.h:52
hcaldqm::Container1D _cOccupancyCutvsiphi_SubdetPM
Definition: DigiTask.h:142
const_iterator begin() const
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:20
hcaldqm::ContainerSingle2D _cSummaryvsLS
Definition: DigiTask.h:173
hcaldqm::ContainerProf2D _cTimingCut_FEDVME
Definition: DigiTask.h:109
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: DigiTask.cc:39
int const FIBER_VME_MIN
Definition: Constants.h:141
hcaldqm::Container2D _cOccupancyCutvsiphivsLS_SubdetPM
Definition: DigiTask.h:145
hcaldqm::ContainerXXX< uint32_t > _xDigiSize
Definition: DigiTask.h:156
hcaldqm::ContainerProf2D _cTimingCut_FEDuTCA
Definition: DigiTask.h:110
void bookHistograms(fwlite::EventContainer &eventCont)
double q2[4]
Definition: TauolaWrapper.h:88
int const FIBERCH_MIN
Definition: Constants.h:151
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:119
hcaldqm::filter::HashFilter _filter_VME
Definition: DigiTask.h:77
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
virtual CompactMap::const_iterator end()
Definition: ContainerXXX.h:77
hcaldqm::Container2D _cLETDCvsTS_SubdetPM
Definition: DigiTask.h:164
ProcessingType _ptype
Definition: DQModule.h:59
virtual void fill(uint32_t)
Definition: Container1D.cc:82
virtual void reset()
Definition: Container1D.cc:65
edm::InputTag _tagHBHE
Definition: DigiTask.h:46
void reset()
Definition: Flag.h:76
hcaldqm::Container2D _cOccupancy_CrateSlot
Definition: DigiTask.h:129
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:98
hcaldqm::Container2D _cOccupancyCut_ElectronicsVME
Definition: DigiTask.h:139
hcaldqm::Container1D _cDigiSize_Crate
Definition: DigiTask.h:153
hcaldqm::Container1D _cShapeCut_FED
Definition: DigiTask.h:102
edm::InputTag _tagHEP17
Definition: DigiTask.h:47
hcaldqm::Container2D _cOccupancyCut_depth
Definition: DigiTask.h:141
hcaldqm::ContainerProf1D _cOccupancyCutvsBX_Subdet
Definition: DigiTask.h:150
double _cutSumQ_HF
Definition: DigiTask.h:55
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:144
double _cutSumQ_HBHE
Definition: DigiTask.h:55
hash_function_did const hash_did[nHashType_did]
hcaldqm::ContainerProf2D _cTimingCut_depth
Definition: DigiTask.h:115
DetId detid() const
Get the detector id.
std::vector< HcalGenericDetId > allPrecisionId() const
Logger _logger
Definition: DQModule.h:70
hcaldqm::Container2D _cOccupancy_FEDVME
Definition: DigiTask.h:124
hcaldqm::ContainerProf1D _cTimingCutvsLS_SubdetPM
Definition: DigiTask.h:114
hcaldqm::Container2D _cOccupancyCut_FEDVME
Definition: DigiTask.h:137
hcaldqm::Container2D _cOccupancy_depth
Definition: DigiTask.h:130
std::string _name
Definition: DQModule.h:57
HcalElectronicsMap const * _emap
Definition: DQTask.h:73
void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fEnergy), int debug=0) override
hcaldqm::Container2D _cSummaryvsLS_FED
Definition: DigiTask.h:172
edm::EDGetTokenT< QIE11DigiCollection > _tokHEP17
Definition: DigiTask.h:51
hcaldqm::filter::HashFilter _filter_FEDHF
Definition: DigiTask.h:79
int const CRATE_uTCA_MIN
Definition: Constants.h:116
const_iterator end() const
edm::EDGetTokenT< QIE10DigiCollection > _tokHF
Definition: DigiTask.h:53
DigiTask(edm::ParameterSet const &)
Definition: DigiTask.cc:7
hcaldqm::ContainerProf1D _cOccupancyvsLS_Subdet
Definition: DigiTask.h:148
void _resetMonitors(hcaldqm::UpdateFreq) override
Definition: DigiTask.cc:519
hcaldqm::ContainerProf1D _cSumQvsLS_SubdetPM
Definition: DigiTask.h:90
hcaldqm::ContainerXXX< uint32_t > _xUni
Definition: DigiTask.h:157
hcaldqm::ContainerProf1D _cTimingCutvsLS_FED
Definition: DigiTask.h:113
bool isVMEid() const
hcaldqm::Container2D _cOccupancyCut_FEDuTCA
Definition: DigiTask.h:138
hcaldqm::Container2D _cOccupancy_ElectronicsVME
Definition: DigiTask.h:126
edm::InputTag _tagHF
Definition: DigiTask.h:49
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
bool isFEDHBHE(HcalElectronicsId const &)
Definition: Utilities.cc:172
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:99
int size() const
get the size
Definition: CaloSamples.h:24
hcaldqm::Container1D _cDigiSize_FED
Definition: DigiTask.h:154
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:159
hcaldqm::Container1D _cSumQ_SubdetPM
Definition: DigiTask.h:88
const T & get() const
Definition: EventSetup.h:55
hcaldqm::Container1D _cOccupancyvsiphi_SubdetPM
Definition: DigiTask.h:131
int const DIGISIZE[SUBDET_NUM]
Definition: Constants.h:183
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, int debug=0) override
hcaldqm::ContainerProf1D _cTimingCutvsieta_Subdet
Definition: DigiTask.h:117
hcaldqm::filter::HashFilter _filter_HEP17
Definition: DigiTask.h:82
hcaldqm::Container1D _cLETDCTime_SubdetPM
Definition: DigiTask.h:165
hcaldqm::electronicsmap::ElectronicsMap _dhashmap
Definition: DigiTask.h:74
std::vector< hcaldqm::flag::Flag > _vflags
Definition: DigiTask.h:59
void setBinContent(HcalDetId const &, int) override
Definition: Container2D.cc:235
std::string const & label() const
Definition: InputTag.h:36
const_iterator end() const
hcaldqm::Container2D _cOccupancyCut_ElectronicsuTCA
Definition: DigiTask.h:140
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsVME
Definition: DigiTask.h:111
hcaldqm::Container2D _cLETDCvsADC_SubdetPM
Definition: DigiTask.h:163
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:249
edm::ESHandle< HcalDbService > _dbService
Definition: DQTask.h:72
virtual void setLumiFlag()
std::vector< int > getFEDList(HcalElectronicsMap const *)
Definition: Utilities.cc:95
hcaldqm::Container2D _cOccupancy_Crate
Definition: DigiTask.h:128
std::vector< int > getFEDuTCAList(HcalElectronicsMap const *)
Definition: Utilities.cc:145
void fill(HcalDetId const &) override
Definition: Container2D.cc:59
const HcalElectronicsMap * getHcalMapping() const
virtual bool filter(HcalDetId const &) const
Definition: HashFilter.cc:36
std::string _subsystem
Definition: DQModule.h:64
hcaldqm::filter::HashFilter _filter_uTCA
Definition: DigiTask.h:78
hcaldqm::ContainerProf1D _cSumQvsLS_SubdetPM_HF
Definition: DigiTask.h:97
bool isFEDHO(HcalElectronicsId const &)
Definition: Utilities.cc:212
std::vector< uint32_t > _vcdaqEids
Definition: DQTask.h:65
hcaldqm::ContainerProf1D _cDigiSizevsLS_FED
Definition: DigiTask.h:155
hcaldqm::ContainerXXX< uint32_t > _xNChs
Definition: DigiTask.h:158
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: DigiTask.h:73
hcaldqm::ContainerProf1D _cOccupancyCutvsLS_Subdet
Definition: DigiTask.h:149
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
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: Container2D.cc:895
hcaldqm::Container1D _cSumQ_SubdetPM_HF
Definition: DigiTask.h:96
std::vector< uint32_t > _vhashFEDs
Definition: DigiTask.h:70
hcaldqm::filter::HashFilter _filter_HF
Definition: DigiTask.h:80
int samples() const
total number of samples in the digi
hcaldqm::ContainerProf1D _cSumQvsBX_SubdetPM_HF
Definition: DigiTask.h:98
hcaldqm::Container1D _cOccupancyvsieta_Subdet
Definition: DigiTask.h:132
Readout chain identification for Hcal.
std::string const & instance() const
Definition: InputTag.h:37
bool isFEDHF(HcalElectronicsId const &)
Definition: Utilities.cc:187
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsuTCA
Definition: DigiTask.h:112
hcaldqm::filter::HashFilter _filter_notHF
Definition: DigiTask.h:81
int const SLOT_uTCA_MIN
Definition: Constants.h:123
const_iterator begin() const
hcaldqm::Container1D _cTimingCut_SubdetPM
Definition: DigiTask.h:108
Definition: Run.h:43
bool _unknownIdsPresent
Definition: DigiTask.h:170
hcaldqm::Container2D _cOccupancy_FEDuTCA
Definition: DigiTask.h:125
ib
Definition: cuy.py:660
hcaldqm::ContainerXXX< uint32_t > _xUniHF
Definition: DigiTask.h:157
hcaldqm::Container2D _cADCvsTS_SubdetPM_HF
Definition: DigiTask.h:104
double _cutSumQ_HEP17
Definition: DigiTask.h:55
double sumQ(DIGI const &digi, double ped, int i=0, int j=3)
Definition: Utilities.h:122
hcaldqm::Container1D _cfC_SubdetPM
Definition: DigiTask.h:87
hcaldqm::Container2D _cOccupancy_ElectronicsuTCA
Definition: DigiTask.h:127