CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PedestalTask.cc
Go to the documentation of this file.
3 
4 using namespace hcaldqm;
5 using namespace hcaldqm::constants;
7  : DQTask(ps), hcalDbServiceToken_(esConsumes<HcalDbService, HcalDbRecord, edm::Transition::BeginRun>()) {
8  // tags
9  _tagQIE11 = ps.getUntrackedParameter<edm::InputTag>("tagHE", edm::InputTag("hcalDigis"));
10  _tagHO = ps.getUntrackedParameter<edm::InputTag>("tagHO", edm::InputTag("hcalDigis"));
11  _tagQIE10 = ps.getUntrackedParameter<edm::InputTag>("tagHF", edm::InputTag("hcalDigis"));
12  _tagTrigger = ps.getUntrackedParameter<edm::InputTag>("tagTrigger", edm::InputTag("tbunpacker"));
13  _taguMN = ps.getUntrackedParameter<edm::InputTag>("taguMN", edm::InputTag("hcalDigis"));
14  _tokQIE11 = consumes<QIE11DigiCollection>(_tagQIE11);
15  _tokHO = consumes<HODigiCollection>(_tagHO);
16  _tokQIE10 = consumes<QIE10DigiCollection>(_tagQIE10);
17  _tokTrigger = consumes<HcalTBTriggerData>(_tagTrigger);
18  _tokuMN = consumes<HcalUMNioDigi>(_taguMN);
19 
20  _vflags.resize(2);
23  //_vflags[fBadR]=hcaldqm::flag::Flag("BadR");
24 
25  _thresh_mean = ps.getUntrackedParameter<double>("thresh_mean", 0.25);
26  _thresh_rms = ps.getUntrackedParameter<double>("thresh_mean", 0.25);
27  _thresh_badm = ps.getUntrackedParameter<double>("thresh_badm", 0.1);
28  _thresh_badr = ps.getUntrackedParameter<double>("thresh_badr", 0.1);
29  _thresh_missing_high = ps.getUntrackedParameter<double>("thresh_missing_high", 0.2);
30  _thresh_missing_low = ps.getUntrackedParameter<double>("thresh_missing_low", 0.05);
31 }
32 
34  if (_ptype == fLocal)
35  if (r.runAuxiliary().run() == 1)
36  return;
37  DQTask::bookHistograms(ib, r, es);
38 
40  _emap = dbs->getHcalMapping();
41  std::vector<uint32_t> vhashVME;
42  std::vector<uint32_t> vhashuTCA;
43  std::vector<uint32_t> vhashC38;
44  vhashVME.push_back(
46  vhashuTCA.push_back(HcalElectronicsId(CRATE_uTCA_MIN, SLOT_uTCA_MIN, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
47  vhashC38.push_back(HcalElectronicsId(38, SLOT_uTCA_MIN, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
51 
52  // Containers XXX
59 
60 #ifndef HIDE_PEDESTAL_CONDITIONS
63 #endif
64 
65  // Containers
67  "Mean1LS",
71  0);
73  "RMS1LS",
77  0);
79  "Mean1LS",
84  0);
86  "RMS1LS",
91  0);
92  if (_ptype != fOffline) { // hidefed2crate
94  "Mean1LS",
99  0);
101  "RMS1LS",
106  0);
107  }
108 
110  "Mean",
114  0);
116  "RMS",
120  0);
122  "Mean",
127  0);
129  "RMS",
134  0);
135 
137  "MeanDBRef1LS",
141  0);
143  "RMSDBRef1LS",
147  0);
149  "MeanDBRef1LS",
154  0);
156  "RMSDBRef1LS",
161  0);
162 
164  "MeanDBRef",
168  0);
170  "RMSDBRef",
174  0);
176  "MeanDBRef",
181  0);
183  "RMSDBRef",
188  0);
189 
191  "MissingvsLS",
195  0);
197  "OccupancyvsLS",
201  0);
203  "OccupancyEAvsLS",
207  0);
209  "NBadMeanvsLS",
213  0);
215  "NBadRMSvsLS",
219  0);
220 
222  "Missing1LS",
227  0);
229  "MeanBad1LS",
234  0);
236  "RMSBad1LS",
241  0);
242 
244  "Missing",
249  0);
251  "MeanBad",
256  0);
258  "RMSBad",
263  0);
264 
266  "ADC",
270  0);
271 
272  if (_ptype != fOffline) { // hidefed2crate
273  std::vector<int> vFEDs = hcaldqm::utilities::getFEDList(_emap);
274  std::vector<int> vFEDsVME = hcaldqm::utilities::getFEDVMEList(_emap);
275  std::vector<int> vFEDsuTCA = hcaldqm::utilities::getFEDuTCAList(_emap);
276  for (std::vector<int>::const_iterator it = vFEDsVME.begin(); it != vFEDsVME.end(); ++it)
277  _vhashFEDs.push_back(
279  for (std::vector<int>::const_iterator it = vFEDsuTCA.begin(); it != vFEDsuTCA.end(); ++it) {
280  std::pair<uint16_t, uint16_t> cspair = utilities::fed2crate(*it);
281  _vhashFEDs.push_back(HcalElectronicsId(cspair.first, cspair.second, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
282  }
288  "Mean",
293  0);
295  "RMS",
300  0);
302  "MeanDBRef1LS",
307  0);
309  "RMSDBRef1LS",
314  0);
316  _name,
317  "MeanDBRef",
322  0);
324  "RMSDBRef",
329  0);
331  "Missing1LS",
336  0);
338  "MeanBad1LS",
343  0);
345  "RMSBad1LS",
350  0);
352  "Missing",
357  0);
359  "MeanBad",
364  0);
366  "RMSBad",
371  0);
373  "SummaryvsLS",
378  0);
380  "SummaryvsLS",
384  0);
385  }
386 
387  // book plots
400 
412 
413  if (_ptype != fOffline) { // hidefed2crate
421 
429  }
430 
436  if (_ptype != fOffline) { // hidefed2crate
439  }
440 
441  // book compact containers
448 
449 #ifndef HIDE_PEDESTAL_CONDITIONS
452 #endif
453 
454  if (_ptype != fOffline) { // hidefed2crate
455  _xNChs.book(_emap);
459  }
460 
462 
463  // load conditions pedestals
464  std::vector<HcalGenericDetId> dids = _emap->allPrecisionId();
465  for (std::vector<HcalGenericDetId>::const_iterator it = dids.begin(); it != dids.end(); ++it) {
466  // skip if calib or whatever
467  if (!it->isHcalDetId())
468  continue;
469  // skip Crate 38
471  continue;
472 #ifndef HIDE_PEDESTAL_CONDITIONS
473  HcalDetId did = HcalDetId(it->rawId());
474 
475  HcalPedestal const* peds = dbs->getPedestal(did);
476  float const* means = peds->getValues();
477  float const* rmss = peds->getWidths();
478  double msum = 0;
479  double rsum = 0;
480  for (uint32_t i = 0; i < 4; i++) {
481  msum += means[i];
482  rsum += rmss[i];
483  }
484  msum /= 4;
485  rsum /= 4;
486  _xPedRefMean.set(did, msum);
487  _xPedRefRMS.set(did, rsum);
488 #endif
489  }
490 }
491 
493  DQTask::_resetMonitors(uf);
494 
495  switch (uf) {
496  case hcaldqm::f50LS:
498  break;
499  default:
500  break;
501  }
502 }
503 
504 /* virtual */ void PedestalTask::_dump() {
505  // reset what's needed
506 
507  // Mean/RMS actual values
512  if (_ptype != fOffline) { // hidefed2crate
515  }
516 
521  if (_ptype != fOffline) { // hidefed2crate
524  }
525 
526  // DB Conditions Comparison
531 
536 
537  if (_ptype != fOffline) { // hidefed2crate
540 
543  }
544 
545  // missing channels
549 
553 
554  // Missing or Bad
555  if (_ptype != fOffline) { // hidefed2crate
559 
563 
564  // reset some XXX containers
565  _xNChs.reset();
566  _xNMsn1LS.reset();
569  }
570  // - ITERATE OVER ALL TEH CHANNELS
571  // - FIND THE ONES THAT ARE MISSING
572  // - FIND THE ONES WITH BAD PEDESTAL MEANs
573  // - FIND THE ONES WITH BAD PEDESTAL RMSs
574  std::vector<HcalGenericDetId> dids = _emap->allPrecisionId();
575  for (std::vector<HcalGenericDetId>::const_iterator it = dids.begin(); it != dids.end(); ++it) {
576  if (!it->isHcalDetId())
577  continue;
579  if (_filter_C38.filter(eid))
580  continue;
581 
582  // filter out channels with bad quality
583  if (_xQuality.exists(HcalDetId(*it))) {
584  HcalChannelStatus cs(it->rawId(), _xQuality.get(HcalDetId(*it)));
586  continue;
587  }
588 
589  HcalDetId did = HcalDetId(it->rawId());
590  double sum1LS = _xPedSum1LS.get(did);
591 #ifndef HIDE_PEDESTAL_CONDITIONS
592  double refm = _xPedRefMean.get(did);
593 #endif
594  double sum21LS = _xPedSum21LS.get(did);
595 #ifndef HIDE_PEDESTAL_CONDITIONS
596  double refr = _xPedRefRMS.get(did);
597 #endif
598  double n1LS = _xPedEntries1LS.get(did);
599 
600  double sumTotal = _xPedSumTotal.get(did);
601  double sum2Total = _xPedSum2Total.get(did);
602  double nTotal = _xPedEntriesTotal.get(did);
603 
604  if (_ptype != fOffline) { // hidefed2crate
605  _xNChs.get(eid)++;
606  }
607  // IF A CHANNEL IS MISSING FOR THIS LS
608  if (n1LS == 0) {
611  if (_ptype != fOffline) { // hidefed2crate
612  if (!eid.isVMEid())
614  _xNMsn1LS.get(eid)++;
615  }
616  // ALSO CHECK
617  // IF A CHANNEL HAS BEEN MISSING FOR ALL LSs SO FAR
618  if (nTotal == 0) {
620  if (_ptype != fOffline) { // hidefed2crate
621  if (!eid.isVMEid())
623  }
624  }
625  continue;
626  }
627 
628  // if not missing, fill the occupancy...
630 
631  // compute the means and diffs for this LS
632  sum1LS /= n1LS;
633  double rms1LS = sqrt(sum21LS / n1LS - sum1LS * sum1LS);
634 #ifndef HIDE_PEDESTAL_CONDITIONS
635  double diffm1LS = sum1LS - refm;
636  double diffr1LS = rms1LS - refr;
637 #endif
638  // compute the means and diffs for the whole Run
639  sumTotal /= nTotal;
640  double rmsTotal = sqrt(sum2Total / nTotal - sumTotal * sumTotal);
641 #ifndef HIDE_PEDESTAL_CONDITIONS
642  double diffmTotal = sumTotal - refm;
643  double diffrTotal = rmsTotal - refr;
644 #endif
645  // FILL ACTUAL MEANs AND RMSs FOR THIS LS
646  _cMean1LS_Subdet.fill(did, sum1LS);
647  _cMean1LS_depth.fill(did, sum1LS);
648  _cRMS1LS_Subdet.fill(did, rms1LS);
649  _cRMS1LS_depth.fill(did, rms1LS);
650 
651  // FILL THE DIFFERENCES FOR THIS LS
652 #ifndef HIDE_PEDESTAL_CONDITIONS
653  _cMeanDBRef1LS_Subdet.fill(did, diffm1LS);
654  _cMeanDBRef1LS_depth.fill(did, diffm1LS);
655  _cRMSDBRef1LS_Subdet.fill(did, diffr1LS);
656  _cRMSDBRef1LS_depth.fill(did, diffr1LS);
657 #endif
658  // FILL ACTUAL MEANs AND RMSs FOR THE WHOLE RUN
659  _cMeanTotal_Subdet.fill(did, sumTotal);
660  _cMeanTotal_depth.fill(did, sumTotal);
661  _cRMSTotal_Subdet.fill(did, rmsTotal);
662  _cRMSTotal_depth.fill(did, rmsTotal);
663 
664  // FILL THE DIFFERENCES FOR THE WHOLE RUN
665 #ifndef HIDE_PEDESTAL_CONDITIONS
666  _cMeanDBRefTotal_Subdet.fill(did, diffmTotal);
667  _cMeanDBRefTotal_depth.fill(did, diffmTotal);
668  _cRMSDBRefTotal_Subdet.fill(did, diffrTotal);
669  _cRMSDBRefTotal_depth.fill(did, diffrTotal);
670 #endif
671  // FOR THIS LS
672  if (_ptype != fOffline) { // hidefed2crate
673  if (!eid.isVMEid()) {
674  _cMean1LS_FEDuTCA.fill(eid, sum1LS);
675  _cRMS1LS_FEDuTCA.fill(eid, rms1LS);
676  _cMeanDBRef1LS_FEDuTCA.fill(eid, diffm1LS);
677  _cRMSDBRef1LS_FEDuTCA.fill(eid, diffr1LS);
678  }
679 
680  // FOR THE WHOLE RUN
681  if (!eid.isVMEid()) {
682  _cMeanTotal_FEDuTCA.fill(eid, sumTotal);
683  _cRMSTotal_FEDuTCA.fill(eid, rmsTotal);
684  _cMeanDBRefTotal_FEDuTCA.fill(eid, diffmTotal);
685  _cRMSDBRefTotal_FEDuTCA.fill(eid, diffrTotal);
686  }
687  }
688 
689  // FOR THE CURRENT LS COMPARE MEANS AND RMSS
690 #ifndef HIDE_PEDESTAL_CONDITIONS
691  if (fabs(diffm1LS) > _thresh_mean) {
694  if (_ptype != fOffline) { // hidefed2crate
695  if (!eid.isVMEid())
697  _xNBadMean1LS.get(eid)++;
698  }
699  }
700  if (fabs(diffr1LS) > _thresh_rms) {
701  _cRMSBad1LS_depth.fill(did);
703  if (_ptype != fOffline) { // hidefed2crate
704  if (!eid.isVMEid())
706  _xNBadRMS1LS.get(eid)++;
707  }
708  }
709 
710  // FOR THIS RUN
711  if (fabs(diffmTotal) > _thresh_mean) {
713  if (_ptype != fOffline) { // hidefed2crate
714  if (!eid.isVMEid())
716  }
717  }
718  if (fabs(diffrTotal) > _thresh_rms) {
720  if (_ptype != fOffline) { // hidefed2crate
721  if (!eid.isVMEid())
723  }
724  }
725 #endif
726  }
727 
728  // SET THE FLAGS FOR THIS LS
729  if (_ptype != fOffline) { // hidefed2crate
730  for (std::vector<uint32_t>::const_iterator it = _vhashFEDs.begin(); it != _vhashFEDs.end(); ++it) {
731  hcaldqm::flag::Flag fSum("PED");
733 
734  std::vector<uint32_t>::const_iterator jt = std::find(_vcdaqEids.begin(), _vcdaqEids.end(), (*it));
735  if (jt == _vcdaqEids.end()) {
736  // not @cDAQ
737  for (uint32_t iflag = 0; iflag < _vflags.size(); iflag++)
740  continue;
741  }
742 
743  // @cDAQ
745  double frmissing = (_xNChs.get(eid) == 0) ? 0 : double(_xNMsn1LS.get(eid)) / double(_xNChs.get(eid));
746  double frbadm = (_xNChs.get(eid) == 0) ? 0 : _xNBadMean1LS.get(eid) / _xNChs.get(eid);
747  //double frbadr = _xNBadRMS1LS.get(eid)/_xNChs.get(eid);
748 
749  if (frmissing >= _thresh_missing_high)
750  _vflags[fMsn]._state = hcaldqm::flag::fBAD;
751  else if (frmissing >= _thresh_missing_low)
753  else
755  if (frbadm >= _thresh_badm)
757  else
759  // BadR removed May 9, 2018 - the pedestal RMS isn't stable enough to monitor right now.
760  //if (frbadr>=_thresh_badr)
761  // _vflags[fBadR]._state = hcaldqm::flag::fBAD;
762  //else
763  // _vflags[fBadR]._state = hcaldqm::flag::fGOOD;
764  }
765 
766  int iflag = 0;
767  for (std::vector<hcaldqm::flag::Flag>::iterator ft = _vflags.begin(); ft != _vflags.end(); ++ft) {
768  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, iflag, int(ft->_state));
769  fSum += (*ft);
770  iflag++;
771  ft->reset();
772  }
774  }
775  }
776 
777  // reset the pedestal containers instead of writting reset... func
778  _xPedSum1LS.reset();
781 }
782 
783 std::shared_ptr<hcaldqm::Cache> PedestalTask::globalBeginLuminosityBlock(edm::LuminosityBlock const& lb,
784  edm::EventSetup const& es) const {
785  return DQTask::globalBeginLuminosityBlock(lb, es);
786 }
787 
788 /* virtual */ void PedestalTask::dqmEndRun(edm::Run const& r, edm::EventSetup const&) {
789  if (_ptype == fLocal) {
790  if (r.runAuxiliary().run() == 1)
791  return;
792  else
793  this->_dump();
794  } else if (_ptype == fOnline)
795  return;
796 }
797 
799  auto lumiCache = luminosityBlockCache(lb.index());
800  _currentLS = lumiCache->currentLS;
801  _xQuality.reset();
802  _xQuality = lumiCache->xQuality;
803 
804  if (_ptype == fLocal)
805  return;
806  this->_dump();
807 
808  DQTask::globalEndLuminosityBlock(lb, es);
809 }
810 
811 /* virtual */ void PedestalTask::_process(edm::Event const& e, edm::EventSetup const& es) {
815 
816  if (!e.getByToken(_tokHO, c_ho))
817  _logger.dqmthrow("Collection HODigiCollection isn't available" + _tagHO.label() + " " + _tagHO.instance());
818  if (!e.getByToken(_tokQIE10, c_QIE10))
819  _logger.dqmthrow("Collection QIE10DigiCollection isn't available" + _tagQIE10.label() + " " + _tagQIE10.instance());
820  if (!e.getByToken(_tokQIE11, c_QIE11))
821  _logger.dqmthrow("Collection QIE11DigiCollection isn't available" + _tagQIE11.label() + " " + _tagQIE11.instance());
822 
823  auto lumiCache = luminosityBlockCache(e.getLuminosityBlock().index());
824  _currentLS = lumiCache->currentLS;
825 
826  int nHB(0), nHE(0), nHO(0), nHF(0);
827  for (QIE11DigiCollection::const_iterator it = c_QIE11->begin(); it != c_QIE11->end(); ++it) {
828  const QIE11DataFrame digi = static_cast<const QIE11DataFrame>(*it);
829  HcalDetId const& did = digi.detid();
830  // Require barrel or endcap. As of 2017, some calibration channels are ending up in this collection.
831  if ((did.subdet() != HcalEndcap) && (did.subdet() != HcalBarrel)) {
832  continue;
833  }
834  int digiSizeToUse = floor(digi.samples() / constants::CAPS_NUM) * constants::CAPS_NUM - 1;
835  did.subdet() == HcalBarrel ? nHB++ : nHE++;
836 
837  for (int i = 0; i < digiSizeToUse; i++) {
838  _cADC_SubdetPM.fill(did, digi[i].adc());
839 
840  _xPedSum1LS.get(did) += digi[i].adc();
841  _xPedSum21LS.get(did) += digi[i].adc() * digi[i].adc();
842  _xPedEntries1LS.get(did)++;
843 
844  _xPedSumTotal.get(did) += digi[i].adc();
845  _xPedSum2Total.get(did) += digi[i].adc() * digi[i].adc();
846  _xPedEntriesTotal.get(did)++;
847  }
848  }
849 
850  _cOccupancyEAvsLS_Subdet.fill(HcalDetId(HcalBarrel, 1, 1, 1), _currentLS, nHB);
851  _cOccupancyEAvsLS_Subdet.fill(HcalDetId(HcalEndcap, 1, 1, 1), _currentLS, nHE);
852 
853  for (HODigiCollection::const_iterator it = c_ho->begin(); it != c_ho->end(); ++it) {
854  const HODataFrame digi = (const HODataFrame)(*it);
855  HcalDetId did = digi.id();
856  int digiSizeToUse = floor(digi.size() / constants::CAPS_NUM) * constants::CAPS_NUM - 1;
857  nHO++;
858  for (int i = 0; i < digiSizeToUse; i++) {
859  _cADC_SubdetPM.fill(did, it->sample(i).adc());
860 
861  _xPedSum1LS.get(did) += it->sample(i).adc();
862  _xPedSum21LS.get(did) += it->sample(i).adc() * it->sample(i).adc();
863  _xPedEntries1LS.get(did)++;
864 
865  _xPedSumTotal.get(did) += it->sample(i).adc();
866  _xPedSum2Total.get(did) += it->sample(i).adc() * it->sample(i).adc();
867  _xPedEntriesTotal.get(did)++;
868  }
869  }
870  _cOccupancyEAvsLS_Subdet.fill(HcalDetId(HcalOuter, 1, 1, 1), _currentLS, nHO);
871 
872  for (QIE10DigiCollection::const_iterator it = c_QIE10->begin(); it != c_QIE10->end(); ++it) {
873  const QIE10DataFrame digi = static_cast<const QIE10DataFrame>(*it);
874  HcalDetId did = digi.detid();
875  if (did.subdet() != HcalForward) {
876  continue;
877  }
878  // HF has 3 samples in global, so impossible to make divisible by 4
879  int digiSizeToUse =
880  (digi.samples() >= 4 ? floor(digi.samples() / constants::CAPS_NUM) * constants::CAPS_NUM - 1 : digi.samples());
881  nHF++;
882  for (int i = 0; i < digiSizeToUse; i++) {
883  _cADC_SubdetPM.fill(did, digi[i].adc());
884 
885  _xPedSum1LS.get(did) += digi[i].adc();
886  _xPedSum21LS.get(did) += digi[i].adc() * digi[i].adc();
887  _xPedEntries1LS.get(did)++;
888 
889  _xPedSumTotal.get(did) += digi[i].adc();
890  _xPedSum2Total.get(did) += digi[i].adc() * digi[i].adc();
891  _xPedEntriesTotal.get(did)++;
892  }
893  }
894  _cOccupancyEAvsLS_Subdet.fill(HcalDetId(HcalForward, 1, 1, 1), _currentLS, nHF);
895 }
896 
897 /* virtual */ bool PedestalTask::_isApplicable(edm::Event const& e) {
898  if (_ptype == fOnline) {
900  if (!e.getByToken(_tokuMN, cumn))
901  return false;
902 
903  // for online just check the event type not the user Word
904  uint8_t eventType = cumn->eventType();
905  if (eventType == constants::EVENTTYPE_PEDESTAL)
906  return true;
907  } else {
908  // local
910  if (!e.getByToken(_tokTrigger, ctrigger))
911  _logger.dqmthrow("Collection HcalTBTriggerData isn't available" + _tagTrigger.label() + " " +
913  return ctrigger->wasSpillIgnorantPedestalTrigger();
914  }
915 
916  return false;
917 }
918 
edm::InputTag _tagQIE11
Definition: PedestalTask.h:40
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, int debug=0) override
constexpr uint32_t rawId() const
hcaldqm::ContainerXXX< double > _xPedRefRMS
Definition: PedestalTask.h:81
edm::InputTag _taguMN
Definition: PedestalTask.h:44
hcaldqm::Container2D _cMissing1LS_depth
Definition: PedestalTask.h:125
T getUntrackedParameter(std::string const &, T const &) const
double _thresh_badm
Definition: PedestalTask.h:62
hcaldqm::ContainerXXX< double > _xPedSumTotal
Definition: PedestalTask.h:72
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:33
virtual bool exists(HcalDetId const &)
Definition: ContainerXXX.h:212
constexpr int size() const
total number of samples in the digi
Definition: HODataFrame.h:27
int const CRATE_VME_MIN
Definition: Constants.h:95
int ib
Definition: cuy.py:661
double _thresh_badr
Definition: PedestalTask.h:62
hcaldqm::Container2D _cMissingTotal_depth
Definition: PedestalTask.h:127
hcaldqm::Container1D _cMeanTotal_Subdet
Definition: PedestalTask.h:84
void fill(HcalDetId const &) override
std::pair< uint16_t, uint16_t > fed2crate(int fed)
Definition: Utilities.cc:10
void dqmEndRun(edm::Run const &, edm::EventSetup const &) override
LuminosityBlockIndex index() const
void _process(edm::Event const &, edm::EventSetup const &) override
hcaldqm::ContainerProf2D _cMean1LS_depth
Definition: PedestalTask.h:90
hcaldqm::Container1D _cMeanDBRef1LS_Subdet
Definition: PedestalTask.h:101
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
hcaldqm::ContainerProf2D _cRMSDBRef1LS_depth
Definition: PedestalTask.h:106
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
hcaldqm::Container1D _cMean1LS_Subdet
Definition: PedestalTask.h:86
hcaldqm::ContainerXXX< int > _xPedEntries1LS
Definition: PedestalTask.h:71
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
hcaldqm::Container2D _cMeanBad1LS_FEDuTCA
Definition: PedestalTask.h:134
hcaldqm::Container1D _cRMSTotal_Subdet
Definition: PedestalTask.h:85
hcaldqm::Container1D _cNBadRMSvsLS_Subdet
Definition: PedestalTask.h:119
unique_ptr< ClusterSequence > cs
hcaldqm::Container2D _cRMSBadTotal_depth
Definition: PedestalTask.h:137
void globalEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
hcaldqm::ContainerProf2D _cRMSDBRef1LS_FEDuTCA
Definition: PedestalTask.h:108
UpdateFreq
Definition: DQTask.h:32
State _state
Definition: Flag.h:62
hcaldqm::ContainerProf2D _cRMSTotal_depth
Definition: PedestalTask.h:96
std::vector< T >::const_iterator const_iterator
edm::InputTag _tagHO
Definition: PedestalTask.h:41
hcaldqm::ContainerXXX< double > _xPedSum1LS
Definition: PedestalTask.h:69
hcaldqm::ContainerXXX< int > _xPedEntriesTotal
Definition: PedestalTask.h:74
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:120
hcaldqm::ContainerXXX< double > _xPedSum21LS
Definition: PedestalTask.h:70
hcaldqm::Container2D _cMeanBadTotal_FEDuTCA
Definition: PedestalTask.h:139
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
edm::EDGetTokenT< QIE10DigiCollection > _tokQIE10
Definition: PedestalTask.h:48
hcaldqm::Container2D _cRMSBadTotal_FEDuTCA
Definition: PedestalTask.h:138
hcaldqm::Container2D _cRMSBad1LS_depth
Definition: PedestalTask.h:132
virtual void reset()
Definition: ContainerXXX.h:292
hcaldqm::ContainerProf2D _cRMSDBRefTotal_depth
Definition: PedestalTask.h:111
std::vector< uint32_t > _vhashFEDs
Definition: PedestalTask.h:66
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
hcaldqm::Container1D _cRMSDBRef1LS_Subdet
Definition: PedestalTask.h:102
int const FIBER_VME_MIN
Definition: Constants.h:125
std::shared_ptr< hcaldqm::Cache > globalBeginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) const override
bool _isApplicable(edm::Event const &) override
hcaldqm::Container1D _cMissingvsLS_Subdet
Definition: PedestalTask.h:116
int const FIBERCH_MIN
Definition: Constants.h:134
edm::EDGetTokenT< HcalTBTriggerData > _tokTrigger
Definition: PedestalTask.h:49
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
double _thresh_missing_low
Definition: PedestalTask.h:63
example_stream void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
std::vector< int > getFEDVMEList(HcalElectronicsMap const *)
Definition: Utilities.cc:115
hcaldqm::Container1D _cRMS1LS_Subdet
Definition: PedestalTask.h:87
edm::InputTag _tagQIE10
Definition: PedestalTask.h:42
RunAuxiliary const & runAuxiliary() const override
Definition: Run.h:62
constexpr DetId detid() const
Get the detector id.
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
hcaldqm::Container1D _cOccupancyvsLS_Subdet
Definition: PedestalTask.h:117
ProcessingType _ptype
Definition: DQModule.h:44
virtual void fill(uint32_t)
Definition: Container1D.cc:73
virtual void reset()
Definition: Container1D.cc:60
double _thresh_missing_high
Definition: PedestalTask.h:63
void _resetMonitors(hcaldqm::UpdateFreq) override
hcaldqm::ContainerProf2D _cMean1LS_FEDuTCA
Definition: PedestalTask.h:92
void reset()
Definition: Flag.h:59
edm::EDGetTokenT< QIE11DigiCollection > _tokQIE11
Definition: PedestalTask.h:46
int const CAPS_NUM
Definition: Constants.h:207
std::vector< hcaldqm::flag::Flag > _vflags
Definition: PedestalTask.h:52
virtual void setBinContent(int, int, int)
hcaldqm::ContainerXXX< int > _xNChs
Definition: PedestalTask.h:75
void dqmthrow(std::string const &msg) const
Definition: Logger.h:12
ContainerXXX< uint32_t > _xQuality
Definition: DQTask.h:66
int const FED_VME_MIN
Definition: Constants.h:82
T sqrt(T t)
Definition: SSEVec.h:19
hcaldqm::ContainerProf2D _cRMS1LS_FEDuTCA
Definition: PedestalTask.h:93
edm::EDGetTokenT< HcalUMNioDigi > _tokuMN
Definition: PedestalTask.h:45
hcaldqm::Container1D _cRMSDBRefTotal_Subdet
Definition: PedestalTask.h:104
hcaldqm::Container2D _cMeanBadTotal_depth
Definition: PedestalTask.h:136
int const FIBER_uTCA_MIN1
Definition: Constants.h:128
Transition
Definition: Transition.h:12
hcaldqm::Container1D _cADC_SubdetPM
Definition: PedestalTask.h:141
std::vector< HcalGenericDetId > allPrecisionId() const
LuminosityBlock const & getLuminosityBlock() const
Definition: Event.h:100
Logger _logger
Definition: DQModule.h:55
hcaldqm::Container2D _cMissing1LS_FEDuTCA
Definition: PedestalTask.h:126
hcaldqm::ContainerProf1D _cOccupancyEAvsLS_Subdet
Definition: PedestalTask.h:122
hcaldqm::filter::HashFilter _filter_VME
Definition: PedestalTask.h:58
hcaldqm::ContainerProf2D _cMeanDBRef1LS_FEDuTCA
Definition: PedestalTask.h:107
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: PedestalTask.h:56
std::string _name
Definition: DQModule.h:42
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: PedestalTask.cc:33
HcalElectronicsMap const * _emap
Definition: DQTask.h:81
PedestalTask(edm::ParameterSet const &)
Definition: PedestalTask.cc:6
int const CRATE_uTCA_MIN
Definition: Constants.h:100
hcaldqm::Container2D _cMeanBad1LS_depth
Definition: PedestalTask.h:131
hcaldqm::ContainerProf2D _cMeanDBRefTotal_FEDuTCA
Definition: PedestalTask.h:112
hcaldqm::ContainerSingle2D _cSummaryvsLS
Definition: PedestalTask.h:145
hcaldqm::ContainerProf2D _cRMS1LS_depth
Definition: PedestalTask.h:91
hcaldqm::Container2D _cRMSBad1LS_FEDuTCA
Definition: PedestalTask.h:133
hcaldqm::Container1D _cNBadMeanvsLS_Subdet
Definition: PedestalTask.h:118
hcaldqm::filter::HashFilter _filter_C38
Definition: PedestalTask.h:59
constexpr int samples() const
total number of samples in the digi
bool isFEDHBHE(HcalElectronicsId const &)
Definition: Utilities.cc:156
hcaldqm::ContainerProf2D _cMeanTotal_depth
Definition: PedestalTask.h:95
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:87
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container1D.cc:592
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:25
hcaldqm::ContainerProf2D _cMeanDBRefTotal_depth
Definition: PedestalTask.h:110
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
hcaldqm::ContainerProf2D _cMeanDBRef1LS_depth
Definition: PedestalTask.h:105
hcaldqm::ContainerProf2D _cRMSTotal_FEDuTCA
Definition: PedestalTask.h:98
constexpr int samples() const
total number of samples in the digi
edm::InputTag _tagTrigger
Definition: PedestalTask.h:43
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fEnergy), int debug=0) override
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
void setBinContent(HcalDetId const &, int) override
Definition: Container2D.cc:163
std::string const & label() const
Definition: InputTag.h:36
uint8_t const EVENTTYPE_PEDESTAL
Definition: Constants.h:292
hcaldqm::Container1D _cMeanDBRefTotal_Subdet
Definition: PedestalTask.h:103
edm::EDGetTokenT< HODigiCollection > _tokHO
Definition: PedestalTask.h:47
hcaldqm::ContainerXXX< double > _xPedSum2Total
Definition: PedestalTask.h:73
double _thresh_mean
Definition: PedestalTask.h:62
edm::ESGetToken< HcalDbService, HcalDbRecord > hcalDbServiceToken_
Definition: PedestalTask.h:50
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:197
hcaldqm::ContainerXXX< int > _xNMsn1LS
Definition: PedestalTask.h:76
hcaldqm::ContainerXXX< int > _xNBadRMS1LS
Definition: PedestalTask.h:77
hcaldqm::Container2D _cMissingTotal_FEDuTCA
Definition: PedestalTask.h:128
hcaldqm::ContainerXXX< double > _xPedRefMean
Definition: PedestalTask.h:80
std::vector< int > getFEDList(HcalElectronicsMap const *)
Definition: Utilities.cc:97
virtual void _dump()
std::vector< int > getFEDuTCAList(HcalElectronicsMap const *)
Definition: Utilities.cc:135
void fill(HcalDetId const &) override
Definition: Container2D.cc:52
virtual bool filter(HcalDetId const &) const
Definition: HashFilter.cc:24
hcaldqm::ContainerProf2D _cRMSDBRefTotal_FEDuTCA
Definition: PedestalTask.h:113
virtual void initialize(FilterType ftype, hashfunctions::HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:17
std::string _subsystem
Definition: DQModule.h:49
bool isFEDHO(HcalElectronicsId const &)
Definition: Utilities.cc:182
std::vector< uint32_t > _vcdaqEids
Definition: DQTask.h:69
hcaldqm::ContainerXXX< int > _xNBadMean1LS
Definition: PedestalTask.h:77
virtual void initialize(hashfunctions::HashType, int debug=0)
Definition: ContainerXXX.h:81
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:157
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: Container2D.cc:567
hcaldqm::ContainerProf2D _cMeanTotal_FEDuTCA
Definition: PedestalTask.h:97
constexpr HcalDetId const & id() const
Definition: HODataFrame.h:23
Readout chain identification for Hcal.
std::string const & instance() const
Definition: InputTag.h:37
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
bool isFEDHF(HcalElectronicsId const &)
Definition: Utilities.cc:170
hcaldqm::Container2D _cSummaryvsLS_FED
Definition: PedestalTask.h:144
RunNumber_t run() const
Definition: RunAuxiliary.h:31
double _thresh_rms
Definition: PedestalTask.h:62
virtual void set(HcalDetId const &, STDTYPE)
Definition: ContainerXXX.h:182
int const SLOT_uTCA_MIN
Definition: Constants.h:107
Definition: Run.h:45
hcaldqm::filter::HashFilter _filter_uTCA
Definition: PedestalTask.h:57
uint16_t *__restrict__ uint16_t const *__restrict__ adc
constexpr DetId detid() const
Get the detector id.