CMS 3D CMS Logo

RecHitTask.cc
Go to the documentation of this file.
2 #include <cmath>
3 
4 using namespace hcaldqm;
5 using namespace hcaldqm::constants;
6 using namespace hcaldqm::filter;
7 
9  DQTask(ps)
10 {
12  edm::InputTag("hbhereco"));
14  edm::InputTag("horeco"));
16  edm::InputTag("hfreco"));
18  edm::InputTag(""));
19  _hfPreRecHitsAvailable = ps.getUntrackedParameter<bool>("hfPreRecHitsAvailable", false);
20 
21  _tokHBHE = consumes<HBHERecHitCollection>(_tagHBHE);
22  _tokHO = consumes<HORecHitCollection>(_tagHO);
23  _tokHF = consumes<HFRecHitCollection>(_tagHF);
24  _tokPreHF = consumes<HFPreRecHitCollection>(_tagPreHF);
25 
26  _cutE_HBHE = ps.getUntrackedParameter<double>("cutE_HBHE", 5);
27  _cutE_HO = ps.getUntrackedParameter<double>("cutE_HO", 5);
28  _cutE_HF = ps.getUntrackedParameter<double>("cutE_HF", 5);
29  _thresh_unihf = ps.getUntrackedParameter<double>("thresh_unihf", 0.2);
30 
31  // order must be the same as in RecoFlag enum
32  _vflags.resize(nRecoFlag);
33  _vflags[fUni]=flag::Flag("UniSlotHF");
34  _vflags[fTCDS]=flag::Flag("TCDS");
35  _vflags[fUnknownIds] = flag::Flag("UnknownIds");
36 }
37 
39  edm::Run const& r, edm::EventSetup const& es)
40 {
41  DQTask::bookHistograms(ib,r,es);
42 
43  // GET WHAT YOU NEED
45  es.get<HcalDbRecord>().get(dbs);
46  _emap = dbs->getHcalMapping();
47 
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  std::vector<uint32_t> vhashHF;
60 
62 
63  // INITIALIZE FIRST
64  // Energy
72 
73  // Timing
78  _cTimingvsEnergy_SubdetPM.initialize(_name, "TimingvsEnergy",
83 
88  _cTimingCut_depth.initialize(_name, "TimingCut",
93  _cTimingCutvsLS_SubdetPM.initialize(_name, "TimingCutvsLS",
97 
98  // Occupancy
99  _cOccupancy_depth.initialize(_name, "Occupancy",
104 
105  _cOccupancyvsLS_Subdet.initialize(_name, "OccupancyvsLS",
109 
110  _cOccupancyCut_depth.initialize(_name, "OccupancyCut",
115 
117  _cDAAsymmetryVsCharge_SubdetPM.initialize(_name, "ChargeVsAsymmetry",
131  }
132 
133  // INITIALIZE HISTOGRAMS to be used only in Online
134  if (_ptype==fOnline)
135  {
136  _cEnergyvsieta_Subdet.initialize(_name, "Energyvsieta",
140  _cEnergyvsiphi_SubdetPM.initialize(_name, "Energyvsiphi",
144  _cEnergyvsLS_SubdetPM.initialize(_name, "EnergyvsLS",
148  _cEnergyvsBX_SubdetPM.initialize(_name, "EnergyvsBX",
152  _cTimingCutvsieta_Subdet.initialize(_name, "TimingCutvsieta",
156  _cTimingCutvsiphi_SubdetPM.initialize(_name, "TimingCutvsiphi",
160  _cTimingCutvsBX_SubdetPM.initialize(_name, "TimingCutvsBX",
164  _cOccupancyvsiphi_SubdetPM.initialize(_name, "Occupancyvsiphi",
168  _cOccupancyvsieta_Subdet.initialize(_name, "Occupancyvsieta",
172  _cOccupancyCutvsiphi_SubdetPM.initialize(_name, "OccupancyCutvsiphi",
176  _cOccupancyCutvsieta_Subdet.initialize(_name, "OccupancyCutvsieta",
180  _cOccupancyCutvsBX_Subdet.initialize(_name, "OccupancyCutvsBX",
185  "OccupancyCutvsiphivsLS", hcaldqm::hashfunctions::fSubdetPM,
189  _cOccupancyCutvsLS_Subdet.initialize(_name, "OccupancyCutvsLS",
193  }
194 
195  // FED-based plots
196  if (_ptype != fOffline) { // hidefed2crate
197  std::vector<int> vFEDs = hcaldqm::utilities::getFEDList(_emap);
198  std::vector<int> vFEDsVME = hcaldqm::utilities::getFEDVMEList(_emap);
199  std::vector<int> vFEDsuTCA = hcaldqm::utilities::getFEDuTCAList(_emap);
200 
201  // push the rawIds of each fed into the vector
202  for (std::vector<int>::const_iterator it=vFEDsVME.begin();
203  it!=vFEDsVME.end(); ++it)
204  _vhashFEDs.push_back(HcalElectronicsId(
205  FIBERCH_MIN, FIBER_VME_MIN, SPIGOT_MIN, (*it)-FED_VME_MIN).rawId());
206  for (std::vector<int>::const_iterator it=vFEDsuTCA.begin();
207  it!=vFEDsuTCA.end(); ++it)
208  {
209  std::pair<uint16_t, uint16_t> cspair = utilities::fed2crate(*it);
210  _vhashFEDs.push_back(HcalElectronicsId(
211  cspair.first, cspair.second, FIBER_uTCA_MIN1,
212  FIBERCH_MIN, false).rawId());
213  }
214 
215  _cTimingCut_FEDVME.initialize(_name, "TimingCut",
220  _cTimingCut_FEDuTCA.initialize(_name, "TimingCut",
225  _cTimingCutvsLS_FED.initialize(_name, "TimingCutvsLS",
231  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
236  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
239 
240  _cOccupancy_FEDVME.initialize(_name, "Occupancy",
245  _cOccupancy_FEDuTCA.initialize(_name, "Occupancy",
252  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
257  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
260 
261  _cOccupancyCut_FEDVME.initialize(_name, "OccupancyCut",
266  _cOccupancyCut_FEDuTCA.initialize(_name, "OccupancyCut",
273  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
278  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
281  if (_ptype == fOnline) {
282  _cSummaryvsLS_FED.initialize(_name, "SummaryvsLS",
287  _cSummaryvsLS.initialize(_name, "SummaryvsLS",
291 
294  }
295  }
296 
297  // BOOK HISTOGRAMS
298  char cutstr[200];
299  sprintf(cutstr, "_EHBHE%dHO%dHF%d", int(_cutE_HBHE),
300  int(_cutE_HO), int(_cutE_HF));
301  char cutstr2[200];
302  sprintf(cutstr2, "_EHF%d", int(_cutE_HF));
303 
304  // Energy
307 
308  // Timing
311  if (_ptype != fOffline) { // hidefed2crate
316  }
320  if (_ptype != fOffline) { // hidefed2crate
322  }
323 
324  // Occupancy
326  if (_ptype != fOffline) { // hidefed2crate
331  }
334  if (_ptype != fOffline) { // hidefed2crate
339  }
340 
345  }
346 
347  // BOOK HISTOGRAMS to be used only in Online
348  if (_ptype==fOnline)
349  {
366 
367  std::vector<uint32_t> vhashFEDHF;
368  vhashFEDHF.push_back(HcalElectronicsId(22, SLOT_uTCA_MIN,
369  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
370  vhashFEDHF.push_back(HcalElectronicsId(29, SLOT_uTCA_MIN,
371  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
372  vhashFEDHF.push_back(HcalElectronicsId(32, SLOT_uTCA_MIN,
373  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
374  vhashFEDHF.push_back(HcalElectronicsId(22, SLOT_uTCA_MIN+6,
375  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
376  vhashFEDHF.push_back(HcalElectronicsId(29, SLOT_uTCA_MIN+6,
377  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
378  vhashFEDHF.push_back(HcalElectronicsId(32, SLOT_uTCA_MIN+6,
379  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
380  HashFilter filter_FEDHF;
382  vhashFEDHF);
383 
385  if (_ptype != fOffline) { // hidefed2crate
386  _xUniHF.book(_emap, filter_FEDHF);
387  _xUni.book(_emap);
388  }
389  }
390 
391  // initialize hash map
393 
394  // book some mes...
396  meUnknownIds1LS = ib.book1D("UnknownIds", "UnknownIds",
397  1, 0, 1);
398  _unknownIdsPresent = false;
400 }
401 
403 {
404  switch(uf)
405  {
406  case hcaldqm::f1LS:
407  _unknownIdsPresent = false;
408  break;
409  default:
410  break;
411  }
412 
413  DQTask::_resetMonitors(uf);
414 }
415 
416 /* virtual */ void RecHitTask::_process(edm::Event const& e,
417  edm::EventSetup const&)
418 {
422 
423  if (!(e.getByToken(_tokHBHE, chbhe)))
424  _logger.dqmthrow("Collection HBHERecHitCollection not available "
425  + _tagHBHE.label() + " " + _tagHBHE.instance());
426  if (!(e.getByToken(_tokHO, cho)))
427  _logger.dqmthrow("Collection HORecHitCollection not available "
428  + _tagHO.label() + " " + _tagHO.instance());
429  if (!(e.getByToken(_tokHF, chf)))
430  _logger.dqmthrow("Collection HFRecHitCollection not available "
431  + _tagHF.label() + " " + _tagHF.instance());
432 
435  if (!(e.getByToken(_tokPreHF, cprehf)))
436  _logger.dqmthrow("Collection HFPreRecHitCollection not available "
437  + _tagPreHF.label() + " " + _tagPreHF.instance());
438  }
439 
440  // extract some info per event
441  int bx = e.bunchCrossing();
442 
443  // To fill histograms outside of the loop, you need to determine if there were
444  // any valid det ids first
445  uint32_t rawidValid = 0;
446  uint32_t rawidHBValid = 0;
447  uint32_t rawidHEValid = 0;
448 
449  double ehbm = 0; double ehbp = 0;
450  double ehem = 0; double ehep = 0;
451  int nChsHB = 0; int nChsHE = 0;
452  int nChsHBCut = 0; int nChsHECut = 0;
454  it!=chbhe->end(); ++it)
455  {
456  double energy = it->energy();
457  double timing = it->time();
458 
459  // Explicit check on the DetIds present in the Collection
460  HcalDetId did = it->id();
461  uint32_t rawid = _ehashmap.lookup(did);
462  /*
463  * Needs to be removed as DetIds that belong to the HEP17 after combination
464  * are not present in the emap
465  * Removed until further notice!
466  *
467  */
468  //if (rawid==0)
469  //{meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
470 
471  HcalElectronicsId const& eid(rawid);
472  rawidValid = did.rawId();
473  if (did.subdet()==HcalBarrel)
474  rawidHBValid = did.rawId();
475  else if (did.subdet()==HcalEndcap)
476  rawidHEValid = did.rawId();
477 
478  _cEnergy_Subdet.fill(did, energy);
479  _cTimingvsEnergy_SubdetPM.fill(did, energy, timing);
480  _cOccupancy_depth.fill(did);
481  did.subdet()==HcalBarrel?did.ieta()>0?ehbp+=energy:ehbm+=energy:
482  did.ieta()>0?ehep+=energy:ehem+=energy;
483 
484  // ONLINE ONLY!
485  if (_ptype==fOnline)
486  {
489  }
490  // ^^^ONLINE ONLY!
491  //
492  if (_ptype != fOffline) { // hidefed2crate
493  // Also, for these electronics plots, require that the channel was found in the emap.
494  if (rawid != 0) {
495  if (eid.isVMEid())
496  {
499  } else if (eid.isUTCAid()) {
502  }
503  }
504  }
505 
506  if (energy>_cutE_HBHE)
507  {
508  // ONLINE ONLY!
509  if (_ptype==fOnline)
510  {
511  _cEnergyvsLS_SubdetPM.fill(did, _currentLS, energy);
512  _cEnergyvsBX_SubdetPM.fill(did, bx, energy);
513  _cEnergyvsieta_Subdet.fill(did, energy);
514  _cEnergyvsiphi_SubdetPM.fill(did, energy);
515  _cTimingCutvsieta_Subdet.fill(did, timing);
516  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
517  _cTimingCutvsBX_SubdetPM.fill(did, bx, timing);
521  }
522  // ^^^ONLINE ONLY!
523  _cEnergy_depth.fill(did, energy);
524  _cTimingCut_SubdetPM.fill(did, timing);
525  _cTimingCut_HBHEPartition.fill(did, timing);
527 
528  // ONLINE
529  if (_ptype==fOnline) {
530  if (rawid != 0) {
531  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
532  }
533  _cTimingCut_depth.fill(did, timing);
534  // ^^^ONLINE
535  } else {
536  if (_ptype != fOffline) { // hidefed2crate
537  if (rawid != 0) {
538  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
539  }
540  }
541  _cTimingCut_depth.fill(did, timing);
542  }
544  if (_ptype != fOffline) { // hidefed2crate
545  if (rawid != 0) {
546  if (eid.isVMEid()){
547  // ONLINE
548  if (_ptype==fOnline)
549  {
550  _cTimingCut_FEDVME.fill(eid, timing);
551  _cTimingCut_ElectronicsVME.fill(eid, timing);
552  } // ^^^ ONLINE
553  else
554  {
555  _cTimingCut_FEDVME.fill(eid, timing);
556  _cTimingCut_ElectronicsVME.fill(eid, timing);
557  }
558  // ^^^ONLINE
559 
562  } else if (eid.isUTCAid()) {
563  if (_ptype==fOnline)
564  {
565  // time constraints are explicit!
566  _cTimingCut_FEDuTCA.fill(eid, timing);
567  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
568  }
569  else
570  {
571  _cTimingCut_FEDuTCA.fill(eid, timing);
572  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
573  }
576  }
577  }
578  }
579  did.subdet()==HcalBarrel?nChsHBCut++:nChsHECut++;
580  }
581  did.subdet()==HcalBarrel?nChsHB++:nChsHE++;
582  }
583 
584  if (rawidHBValid!=0 && rawidHEValid!=0)
585  {
587  nChsHB);
589  nChsHE);
590 
591  // ONLINE ONLY!
592  if (_ptype==fOnline)
593  {
595  bx, nChsHBCut);
597  bx, nChsHECut);
599  _currentLS, nChsHBCut);
601  _currentLS, nChsHECut);
602  }
603  // ^^^ONLINE ONLY!
604  }
605 
606  // reset
607  rawidValid = 0;
608 
609  int nChsHO = 0; int nChsHOCut = 0;
610  double ehop = 0; double ehom = 0;
612  it!=cho->end(); ++it)
613  {
614  double energy = it->energy();
615  double timing = it->time();
616 
617  // Explicit check on the DetIds present in the Collection
618  HcalDetId did = it->id();
619  uint32_t rawid = _ehashmap.lookup(did);
620  if (rawid==0)
621  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
622  HcalElectronicsId const& eid(rawid);
623  if (did.subdet()==HcalOuter)
624  rawidValid = did.rawId();
625 
626  _cEnergy_Subdet.fill(did, energy);
627  _cTimingvsEnergy_SubdetPM.fill(did, energy, timing);
628  _cOccupancy_depth.fill(did);
629  did.ieta()>0?ehop+=energy:ehom+=energy;
630 
631  // IMPORTANT: ONLINE ONLY!
632  if (_ptype==fOnline)
633  {
636  }
637  // ONLINE ONLY!
638 
639  if (_ptype != fOffline) { // hidefed2crate
640  if (eid.isVMEid())
641  {
644  }
645  else
646  {
649  }
650  }
651 
652  if (energy>_cutE_HO)
653  {
654  // ONLINE ONLY!
655  if (_ptype==fOnline)
656  {
657  _cEnergyvsLS_SubdetPM.fill(did, _currentLS, energy);
658  _cEnergyvsBX_SubdetPM.fill(did, bx, energy);
659  _cEnergyvsieta_Subdet.fill(did, energy);
660  _cEnergyvsiphi_SubdetPM.fill(did, energy);
661  _cTimingCutvsieta_Subdet.fill(did, timing);
662  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
663  _cTimingCutvsBX_SubdetPM.fill(did, bx, timing);
667  }
668  // ^^^ONLINE ONLY!
669 
670  _cEnergy_depth.fill(did, energy);
671  _cTimingCut_SubdetPM.fill(did, timing);
673  if (_ptype != fOffline) { // hidefed2crate
674  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
675  }
677  _cTimingCut_depth.fill(did, timing);
678  if (_ptype != fOffline) { // hidefed2crate
679  if (eid.isVMEid())
680  {
681  _cTimingCut_FEDVME.fill(eid, timing);
682  _cTimingCut_ElectronicsVME.fill(eid, timing);
685  }
686  else
687  {
688  _cTimingCut_FEDuTCA.fill(eid, timing);
689  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
692  }
693  }
694  nChsHOCut++;
695  }
696  nChsHO++;
697  }
698 
699  if (rawidValid!=0)
700  {
702  nChsHO);
703  // ONLINE ONLY!
704  if (_ptype==fOnline)
705  {
707  bx, nChsHOCut);
709  _currentLS, nChsHOCut);
710  }
711  // ^^^ONLINE ONLY!
712  }
713 
714  //reset
715  rawidValid = 0;
716 
717  int nChsHF = 0; int nChsHFCut = 0;
718  double ehfp = 0; double ehfm = 0;
720  it!=chf->end(); ++it)
721  {
722  double energy = it->energy();
723  double timing = it->time();
724 
725  // Explicit check on the DetIds present in the Collection
726  HcalDetId did = it->id();
727  uint32_t rawid = _ehashmap.lookup(did);
728  if (rawid==0)
729  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
730  HcalElectronicsId const& eid(rawid);
731  if (did.subdet()==HcalForward)
732  rawidValid = did.rawId();
733 
734  _cEnergy_Subdet.fill(did, energy);
735  _cTimingvsEnergy_SubdetPM.fill(did, energy, timing);
736  _cOccupancy_depth.fill(did);
737  did.ieta()>0?ehfp+=energy:ehfm+=energy;
738 
739  // IMPORTANT:
740  // only for Online Processing
741  //
742  if (_ptype==fOnline)
743  {
746  }
747  // ONLINE ONLY!
748 
749  if (_ptype != fOffline) { // hidefed2crate
750  if (eid.isVMEid())
751  {
754  }
755  else
756  {
759  }
760  }
761 
762  if (energy>_cutE_HF)
763  {
764  // ONLINE ONLY!
765  if (_ptype==fOnline)
766  {
767  _cEnergyvsLS_SubdetPM.fill(did, _currentLS, energy);
768  _cEnergyvsBX_SubdetPM.fill(did, bx, energy);
769  _cEnergyvsieta_Subdet.fill(did, energy);
770  _cEnergyvsiphi_SubdetPM.fill(did, energy);
771  _cTimingCutvsieta_Subdet.fill(did, timing);
772  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
773  _cTimingCutvsBX_SubdetPM.fill(did, bx, timing);
777  if (_ptype != fOffline) { // hidefed2crate
778  _xUniHF.get(eid)++;
779  }
780  }
781  // ^^^ONLINE ONLY!
782  _cEnergy_depth.fill(did, energy);
783  _cTimingCut_SubdetPM.fill(did, timing);
785  if (_ptype != fOffline) { // hidefed2crate
786  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
787  }
789  _cTimingCut_depth.fill(did, timing);
790  if (_ptype != fOffline) { // hidefed2crate
791  if (eid.isVMEid())
792  {
793  _cTimingCut_FEDVME.fill(eid, timing);
794  _cTimingCut_ElectronicsVME.fill(eid, timing);
797  }
798  else
799  {
800  _cTimingCut_FEDuTCA.fill(eid, timing);
801  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
804  }
805  }
806  nChsHFCut++;
807  }
808  nChsHF++;
809  }
810 
811  if (rawidValid!=0)
812  {
814  nChsHF);
815  // ONLINE ONLY!
816  if (_ptype==fOnline)
817  {
819  bx, nChsHFCut);
821  _currentLS, nChsHFCut);
822  }
823  // ^^^ONLINE ONLY!
824  }
825 
826  // Loop over HFPreRecHits to get charge and charge asymmetry
829  it!=cprehf->end(); ++it)
830  {
831  HcalDetId did = it->id();
832  if (_filter_HF.filter(did)) {
833  continue;
834  }
835  std::pair<float, bool> chargeAsymmetry = it->chargeAsymmetry(0.);
836  std::pair<float, bool> chargeAsymmetryCut = it->chargeAsymmetry(20.);
837 
838  if (chargeAsymmetry.second) {
839  _cDAAsymmetryVsCharge_SubdetPM.fill(did, chargeAsymmetry.first, it->charge());
840  }
841  if (chargeAsymmetryCut.second) {
842  _cDAAsymmetryMean_cut_depth.fill(did, chargeAsymmetryCut.first);
843  _cDAAsymmetry_cut_SubdetPM.fill(did, chargeAsymmetryCut.first);
844  }
845  }
846  }
847 }
848 
850  lb, edm::EventSetup const& es)
851 {
852  DQTask::beginLuminosityBlock(lb, es);
853 }
854 
856  lb, edm::EventSetup const& es)
857 {
858  if (_ptype!=fOnline)
859  return;
860 
861  //
862  // GENERATE STATUS ONLY FOR ONLINE
863  //
864 // for (std::vector<HcalGenericDetId>::const_iterator it=gids.begin();
865 // it!=gids.end(); ++it)
866 // {}
867 
868  for (uintCompactMap::const_iterator it=_xUniHF.begin();
869  it!=_xUniHF.end(); ++it)
870  {
871  uint32_t hash1 = it->first;
872  HcalElectronicsId eid1(hash1);
873  double x1 = it->second;
874 
875  for (uintCompactMap::const_iterator jt=_xUniHF.begin();
876  jt!=_xUniHF.end(); ++jt)
877  {
878  if (jt==it)
879  continue;
880  double x2 = jt->second;
881  if (x2==0)
882  continue;
883  if (x1/x2<_thresh_unihf)
884  _xUni.get(eid1)++;
885  }
886  }
887 
888  if (_ptype != fOffline) { // hidefed2crate
889  for (std::vector<uint32_t>::const_iterator it=_vhashFEDs.begin();
890  it!=_vhashFEDs.end(); ++it)
891  {
892  flag::Flag fSum("RECO");
894 
895  std::vector<uint32_t>::const_iterator cit=std::find(
896  _vcdaqEids.begin(), _vcdaqEids.end(), *it);
897  if (cit==_vcdaqEids.end())
898  {
899  // not @cDAQ
900  for (uint32_t iflag=0; iflag<_vflags.size(); iflag++)
901  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, int(iflag),
902  int(flag::fNCDAQ));
904  continue;
905  }
906 
907  // FED is @cDAQ
908  if (hcaldqm::utilities::isFEDHF(eid) && (_runkeyVal==0 || _runkeyVal==4))
909  {
910  if (_xUni.get(eid)>0)
911  _vflags[fUni]._state = flag::fPROBLEMATIC;
912  else
913  _vflags[fUni]._state = flag::fGOOD;
914  }
915 
916  if (_unknownIdsPresent)
917  _vflags[fUnknownIds]._state = flag::fBAD;
918  else
919  _vflags[fUnknownIds]._state = flag::fGOOD;
920 
921  int iflag=0;
922  for (std::vector<flag::Flag>::iterator ft=_vflags.begin();
923  ft!=_vflags.end(); ++ft)
924  {
925  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, int(iflag),
926  int(ft->_state));
927  fSum+=(*ft);
928  iflag++;
929 
930  // reset after using
931  ft->reset();
932  }
934  }
935  _xUniHF.reset(); _xUni.reset();
936  }
937 
938  // in the end always do the DQTask::endLumi
939  DQTask::endLuminosityBlock(lb, es);
940 }
941 
943 
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, int debug=0) override
hcaldqm::ContainerXXX< uint32_t > _xUniHF
Definition: RecHitTask.h:125
constexpr uint32_t rawId() const
T getUntrackedParameter(std::string const &, T const &) const
hcaldqm::Container2D _cOccupancyCut_depth
Definition: RecHitTask.h:120
hcaldqm::Container2D _cSummaryvsLS_FED
Definition: RecHitTask.h:137
std::vector< uint32_t > _vhashFEDs
Definition: RecHitTask.h:57
hcaldqm::ContainerProf1D _cOccupancyvsLS_Subdet
Definition: RecHitTask.h:110
edm::EDGetTokenT< HBHERecHitCollection > _tokHBHE
Definition: RecHitTask.h:48
hcaldqm::ContainerProf2D _cEnergy_depth
Definition: RecHitTask.h:83
virtual void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *qy=new quantity::ValueQuantity(quantity::fN), int debug=0)
Definition: Container1D.cc:41
hcaldqm::Container2D _cTimingvsEnergy_SubdetPM
Definition: RecHitTask.h:88
int const CRATE_VME_MIN
Definition: Constants.h:111
hcaldqm::Container2D _cOccupancyCut_FEDVME
Definition: RecHitTask.h:115
hcaldqm::Container2D _cOccupancy_FEDVME
Definition: RecHitTask.h:106
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:142
double _cutE_HO
Definition: RecHitTask.h:53
void fill(HcalDetId const &) override
std::pair< uint16_t, uint16_t > fed2crate(int fed)
Definition: Utilities.cc:12
edm::EDGetTokenT< HFRecHitCollection > _tokHF
Definition: RecHitTask.h:50
hcaldqm::ContainerXXX< uint32_t > _xUni
Definition: RecHitTask.h:125
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
void _resetMonitors(hcaldqm::UpdateFreq) override
Definition: RecHitTask.cc:402
hcaldqm::Container1D _cOccupancyCutvsiphi_SubdetPM
Definition: RecHitTask.h:121
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
hcaldqm::ContainerProf1D _cEnergyvsieta_Subdet
Definition: RecHitTask.h:81
hcaldqm::ContainerProf1D _cEnergyvsiphi_SubdetPM
Definition: RecHitTask.h:82
hcaldqm::Container2D _cOccupancyCutvsiphivsLS_SubdetPM
Definition: RecHitTask.h:124
std::vector< HcalGenericDetId > _gids
Definition: RecHitTask.h:136
virtual CompactMap::const_iterator begin()
Definition: ContainerXXX.h:73
UpdateFreq
Definition: DQTask.h:17
State _state
Definition: Flag.h:79
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
std::vector< HBHERecHit >::const_iterator const_iterator
hcaldqm::Container1D _cTimingCut_SubdetPM
Definition: RecHitTask.h:91
int bunchCrossing() const
Definition: EventBase.h:66
RecHitTask(edm::ParameterSet const &)
Definition: RecHitTask.cc:8
virtual void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0)
int const SPIGOT_MIN
Definition: Constants.h:136
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
virtual void reset()
Definition: ContainerXXX.h:364
hcaldqm::ContainerProf1D _cTimingCutvsieta_Subdet
Definition: RecHitTask.h:100
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
int const FIBER_VME_MIN
Definition: Constants.h:141
hcaldqm::ContainerProf1D _cEnergyvsBX_SubdetPM
Definition: RecHitTask.h:85
hcaldqm::Container2D _cOccupancyCut_ElectronicsVME
Definition: RecHitTask.h:117
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::ContainerProf2D _cTimingCut_ElectronicsuTCA
Definition: RecHitTask.h:96
virtual CompactMap::const_iterator end()
Definition: ContainerXXX.h:75
constexpr bool isUTCAid() const
std::vector< hcaldqm::flag::Flag > _vflags
Definition: RecHitTask.h:60
double _cutE_HBHE
Definition: RecHitTask.h:53
ProcessingType _ptype
Definition: DQModule.h:59
virtual void fill(uint32_t)
Definition: Container1D.cc:83
hcaldqm::Container1D _cEnergy_Subdet
Definition: RecHitTask.h:80
hcaldqm::ContainerProf1D _cTimingCutvsLS_FED
Definition: RecHitTask.h:98
hcaldqm::ContainerProf2D _cTimingCut_FEDVME
Definition: RecHitTask.h:93
hcaldqm::ContainerProf1D _cTimingCutvsLS_SubdetPM
Definition: RecHitTask.h:99
void reset()
Definition: Flag.h:76
void setLumiFlag()
this ME is meant to be stored for each luminosity section
hcaldqm::Container2D _cOccupancyCut_ElectronicsuTCA
Definition: RecHitTask.h:118
virtual void setBinContent(int, int, int)
hcaldqm::ContainerProf1D _cOccupancyCutvsBX_Subdet
Definition: RecHitTask.h:123
constexpr bool isVMEid() const
void dqmthrow(std::string const &msg) const
Definition: Logger.h:15
int const FED_VME_MIN
Definition: Constants.h:98
edm::InputTag _tagPreHF
Definition: RecHitTask.h:46
int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
hcaldqm::Container2D _cOccupancy_ElectronicsVME
Definition: RecHitTask.h:108
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
virtual example_stream void bookHistograms(DQMStore::IBooker &,@example_stream edm::Run const &,@example_stream edm::EventSetup const &) override
int const FIBER_uTCA_MIN1
Definition: Constants.h:144
double _cutE_HF
Definition: RecHitTask.h:53
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: RecHitTask.cc:38
hash_function_did const hash_did[nHashType_did]
std::vector< HcalGenericDetId > allPrecisionId() const
Logger _logger
Definition: DQModule.h:70
hcaldqm::Container2D _cOccupancyCut_FEDuTCA
Definition: RecHitTask.h:116
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: RecHitTask.h:70
MonitorElement * meUnknownIds1LS
Definition: RecHitTask.h:133
edm::EDGetTokenT< HFPreRecHitCollection > _tokPreHF
Definition: RecHitTask.h:51
std::string _name
Definition: DQModule.h:57
HcalElectronicsMap const * _emap
Definition: DQTask.h:73
hcaldqm::ContainerSingle2D _cSummaryvsLS
Definition: RecHitTask.h:138
double _thresh_unihf
Definition: RecHitTask.h:54
void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
Definition: RecHitTask.cc:849
int const CRATE_uTCA_MIN
Definition: Constants.h:116
const_iterator end() const
hcaldqm::Container2D _cOccupancy_ElectronicsuTCA
Definition: RecHitTask.h:109
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:97
edm::InputTag _tagHO
Definition: RecHitTask.h:44
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container1D.cc:958
hcaldqm::filter::HashFilter _filter_HF
Definition: RecHitTask.h:77
virtual void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0)
Definition: Container2D.cc:32
hcaldqm::Container2D _cOccupancy_FEDuTCA
Definition: RecHitTask.h:107
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
edm::InputTag _tagHF
Definition: RecHitTask.h:45
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fEnergy), int debug=0) override
hcaldqm::Container2D _cDAAsymmetryVsCharge_SubdetPM
Definition: RecHitTask.h:128
void setBinContent(HcalDetId const &, int) override
Definition: Container2D.cc:235
std::string const & label() const
Definition: InputTag.h:36
hcaldqm::Container1D _cTimingCut_HBHEPartition
Definition: RecHitTask.h:92
hcaldqm::filter::HashFilter _filter_uTCA
Definition: RecHitTask.h:74
hcaldqm::ContainerProf1D _cOccupancyCutvsLS_Subdet
Definition: RecHitTask.h:119
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:247
hcaldqm::Container1D _cOccupancyvsieta_Subdet
Definition: RecHitTask.h:112
std::vector< int > getFEDList(HcalElectronicsMap const *)
Definition: Utilities.cc:95
T get() const
Definition: EventSetup.h:63
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:38
void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
Definition: RecHitTask.cc:855
bool _hfPreRecHitsAvailable
Definition: RecHitTask.h:47
virtual void initialize(FilterType ftype, hashfunctions::HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:28
std::string _subsystem
Definition: DQModule.h:64
hcaldqm::ContainerProf1D _cTimingCutvsBX_SubdetPM
Definition: RecHitTask.h:102
edm::EDGetTokenT< HORecHitCollection > _tokHO
Definition: RecHitTask.h:49
std::vector< uint32_t > _vcdaqEids
Definition: DQTask.h:65
void _process(edm::Event const &, edm::EventSetup const &) override
Definition: RecHitTask.cc:416
edm::InputTag _tagHBHE
Definition: RecHitTask.h:43
hcaldqm::ContainerProf2D _cTimingCut_FEDuTCA
Definition: RecHitTask.h:94
virtual void initialize(hashfunctions::HashType, int debug=0)
Definition: ContainerXXX.h:89
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: Container2D.cc:895
hcaldqm::Container2D _cOccupancy_depth
Definition: RecHitTask.h:105
hcaldqm::ContainerProf2D _cDAAsymmetryMean_cut_depth
Definition: RecHitTask.h:129
hcaldqm::ContainerProf1D _cTimingCutvsiphi_SubdetPM
Definition: RecHitTask.h:101
hcaldqm::ContainerProf2D _cTimingCut_depth
Definition: RecHitTask.h:97
Readout chain identification for Hcal.
std::string const & instance() const
Definition: InputTag.h:37
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsVME
Definition: RecHitTask.h:95
hcaldqm::filter::HashFilter _filter_VME
Definition: RecHitTask.h:73
hcaldqm::Container1D _cOccupancyCutvsieta_Subdet
Definition: RecHitTask.h:122
bool isFEDHF(HcalElectronicsId const &)
Definition: Utilities.cc:187
hcaldqm::Container1D _cOccupancyvsiphi_SubdetPM
Definition: RecHitTask.h:111
int const SLOT_uTCA_MIN
Definition: Constants.h:123
const_iterator begin() const
Definition: Run.h:44
bool _unknownIdsPresent
Definition: RecHitTask.h:134
ib
Definition: cuy.py:661
hcaldqm::Container1D _cDAAsymmetry_cut_SubdetPM
Definition: RecHitTask.h:130
hcaldqm::ContainerProf1D _cEnergyvsLS_SubdetPM
Definition: RecHitTask.h:84