CMS 3D CMS Logo

LEDTask.cc
Go to the documentation of this file.
1 
3 
4 using namespace hcaldqm;
5 using namespace hcaldqm::constants;
6 using namespace hcaldqm::filter;
7 
9  _nevents = ps.getUntrackedParameter<int>("nevents", 2000);
10  // tags
11  _tagQIE11 = ps.getUntrackedParameter<edm::InputTag>("tagHE", edm::InputTag("hcalDigis"));
12  _tagHO = ps.getUntrackedParameter<edm::InputTag>("tagHO", edm::InputTag("hcalDigis"));
13  _tagQIE10 = ps.getUntrackedParameter<edm::InputTag>("tagHF", edm::InputTag("hcalDigis"));
14  _tagTrigger = ps.getUntrackedParameter<edm::InputTag>("tagTrigger", edm::InputTag("tbunpacker"));
15  _taguMN = ps.getUntrackedParameter<edm::InputTag>("taguMN", edm::InputTag("hcalDigis"));
16  _tokQIE11 = consumes<QIE11DigiCollection>(_tagQIE11);
17  _tokHO = consumes<HODigiCollection>(_tagHO);
18  _tokQIE10 = consumes<QIE10DigiCollection>(_tagQIE10);
19  _tokTrigger = consumes<HcalTBTriggerData>(_tagTrigger);
20  _tokuMN = consumes<HcalUMNioDigi>(_taguMN);
21 
22  // constants
23  _lowHBHE = ps.getUntrackedParameter<double>("lowHBHE", 20);
24  _lowHO = ps.getUntrackedParameter<double>("lowHO", 20);
25  _lowHF = ps.getUntrackedParameter<double>("lowHF", 20);
26 
27  // LED calibration channels
28  std::vector<edm::ParameterSet> vLedCalibChannels =
29  ps.getParameter<std::vector<edm::ParameterSet>>("ledCalibrationChannels");
30  for (int i = 0; i <= 3; ++i) {
31  HcalSubdetector this_subdet = HcalEmpty;
32  switch (i) {
33  case 0:
34  this_subdet = HcalBarrel;
35  break;
36  case 1:
37  this_subdet = HcalEndcap;
38  break;
39  case 2:
40  this_subdet = HcalOuter;
41  break;
42  case 3:
43  this_subdet = HcalForward;
44  break;
45  default:
46  this_subdet = HcalEmpty;
47  break;
48  }
49  std::vector<int32_t> subdet_calib_ietas = vLedCalibChannels[i].getUntrackedParameter<std::vector<int32_t>>("ieta");
50  std::vector<int32_t> subdet_calib_iphis = vLedCalibChannels[i].getUntrackedParameter<std::vector<int32_t>>("iphi");
51  std::vector<int32_t> subdet_calib_depths =
52  vLedCalibChannels[i].getUntrackedParameter<std::vector<int32_t>>("depth");
53  for (unsigned int ichannel = 0; ichannel < subdet_calib_ietas.size(); ++ichannel) {
54  _ledCalibrationChannels[this_subdet].push_back(HcalDetId(
55  HcalOther, subdet_calib_ietas[ichannel], subdet_calib_iphis[ichannel], subdet_calib_depths[ichannel]));
56  }
57  }
58 }
59 
60 /* virtual */ void LEDTask::bookHistograms(DQMStore::IBooker& ib, edm::Run const& r, edm::EventSetup const& es) {
61  if (_ptype == fLocal)
62  if (r.runAuxiliary().run() == 1)
63  return;
64 
65  DQTask::bookHistograms(ib, r, es);
66 
68  es.get<HcalDbRecord>().get(dbService);
69  _emap = dbService->getHcalMapping();
70 
71  std::vector<uint32_t> vhashVME;
72  std::vector<uint32_t> vhashuTCA;
73  std::vector<uint32_t> vhashC36;
74  vhashVME.push_back(
76  vhashuTCA.push_back(HcalElectronicsId(CRATE_uTCA_MIN, SLOT_uTCA_MIN, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
79 
80  // INITIALIZE
82  "SignalMean",
86  0);
88  "SignalRMS",
92  0);
94  "TimingMean",
98  0);
100  "TimingRMS",
104  0);
105 
106  if (_ptype == fLocal) { // hidefed2crate
108  "SignalMean",
113  0);
115  "SignalMean",
120  0);
122  "SignalRMS",
127  0);
129  "SignalRMS",
134  0);
136  "TimingMean",
141  0);
143  "TimingMean",
148  0);
150  "TimingRMS",
155  0);
157  "TimingRMS",
162  0);
163 
165  "Shape",
169  0);
170  }
171 
173  "SignalMean",
178  0);
180  "SignalRMS",
185  0);
187  "TimingMean",
192  0);
194  "TimingRMS",
199  0);
200 
202  "Missing",
207  0);
208  if (_ptype != fOffline) { // hidefed2crate
210  "Missing",
215  0);
217  "Missing",
222  0);
223  }
224 
225  // Plots for LED in global
226  if (_ptype == fOnline || _ptype == fLocal) {
228  "ADCvsTS",
233  0);
234  }
235  if (_ptype == fOnline) {
237  "LowSignal",
241  0);
243  "SumQ",
247  0);
249  "TDCTime",
253  0);
255  "TDCTime",
260  0);
262  "LED_ADCvsBX",
267  0);
268  } else if (_ptype == fLocal) {
270  "LED_ADCvsEvn",
275  0);
276  }
277 
278  // initialize compact containers
284 
285  // BOOK
290 
295 
297  if (_ptype == fLocal) { // hidefed2crate
309  }
310  if (_ptype == fOnline || _ptype == fLocal) {
312  }
313  if (_ptype == fOnline) {
318  }
319 
320  if (_ptype == fOnline) {
322  } else if (_ptype == fLocal) {
324  }
325 
331 
333 }
334 
335 /* virtual */ void LEDTask::_resetMonitors(hcaldqm::UpdateFreq uf) { DQTask::_resetMonitors(uf); }
336 
337 /* virtual */ void LEDTask::_dump() {
346 
347  if (_ptype == fLocal) { // hidefed2crate
356  }
357 
358  std::vector<HcalGenericDetId> dids = _emap->allPrecisionId();
359  for (std::vector<HcalGenericDetId>::const_iterator it = dids.begin(); it != dids.end(); ++it) {
360  if (!it->isHcalDetId())
361  continue;
362  HcalDetId did = HcalDetId(it->rawId());
364  int n = _xEntries.get(did);
365  double msig = _xSignalSum.get(did) / n;
366  double mtim = _xTimingSum.get(did) / n;
367  double rsig = sqrt(_xSignalSum2.get(did) / n - msig * msig);
368  double rtim = sqrt(_xTimingSum2.get(did) / n - mtim * mtim);
369 
370  // channels missing or low signal
371  if (n == 0) {
372  _cMissing_depth.fill(did);
373  if (_ptype == fLocal) { // hidefed2crate
374  if (eid.isVMEid())
376  else
378  }
379  continue;
380  }
381  _cSignalMean_Subdet.fill(did, msig);
382  _cSignalMean_depth.fill(did, msig);
383  _cSignalRMS_Subdet.fill(did, rsig);
384  _cSignalRMS_depth.fill(did, rsig);
385  _cTimingMean_Subdet.fill(did, mtim);
386  _cTimingMean_depth.fill(did, mtim);
387  _cTimingRMS_Subdet.fill(did, rtim);
388  _cTimingRMS_depth.fill(did, rtim);
389  if (_ptype == fLocal) { // hidefed2crate
390  if (eid.isVMEid()) {
392  _cSignalRMS_FEDVME.fill(eid, rsig);
394  _cTimingRMS_FEDVME.fill(eid, rtim);
395  } else {
400  }
401  }
402  }
403 }
404 
405 /* virtual */ void LEDTask::_process(edm::Event const& e, edm::EventSetup const& es) {
409 
410  if (!e.getByToken(_tokHO, c_ho))
411  _logger.dqmthrow("Collection HODigiCollection isn't available " + _tagHO.label() + " " + _tagHO.instance());
412  if (!e.getByToken(_tokQIE10, c_QIE10))
413  _logger.dqmthrow("Collection QIE10DigiCollection isn't available " + _tagQIE10.label() + " " +
414  _tagQIE10.instance());
415  if (!e.getByToken(_tokQIE11, c_QIE11))
416  _logger.dqmthrow("Collection QIE11DigiCollection isn't available " + _tagQIE11.label() + " " +
417  _tagQIE11.instance());
418 
419  // int currentEvent = e.eventAuxiliary().id().event();
420 
421  for (QIE11DigiCollection::const_iterator it = c_QIE11->begin(); it != c_QIE11->end(); ++it) {
422  const QIE11DataFrame digi = static_cast<const QIE11DataFrame>(*it);
423  HcalDetId const& did = digi.detid();
424  if ((did.subdet() != HcalBarrel) && (did.subdet() != HcalEndcap)) {
425  // LED monitoring from calibration channels
426  if (did.subdet() == HcalOther) {
427  HcalOtherDetId hodid(digi.detid());
428  if (hodid.subdet() == HcalCalibration) {
431  for (int i = 0; i < digi.samples(); i++) {
432  if (_ptype == fOnline) {
433  _LED_ADCvsBX_Subdet.fill(HcalDetId(HcalEndcap, 16, 1, 1), e.bunchCrossing(), digi[i].adc());
434  } else if (_ptype == fLocal) {
436  HcalDetId(HcalEndcap, 16, 1, 1), e.eventAuxiliary().id().event(), digi[i].adc());
437  }
438  }
441  did) != _ledCalibrationChannels[HcalBarrel].end()) {
442  for (int i = 0; i < digi.samples(); i++) {
443  if (_ptype == fOnline) {
444  _LED_ADCvsBX_Subdet.fill(HcalDetId(HcalBarrel, 1, 1, 1), e.bunchCrossing(), digi[i].adc());
445  } else if (_ptype == fLocal) {
447  HcalDetId(HcalBarrel, 1, 1, 1), e.eventAuxiliary().id().event(), digi[i].adc());
448  }
449  }
450  }
451  }
452  }
453  continue;
454  }
455  uint32_t rawid = _ehashmap.lookup(did);
456  if (!rawid) {
457  std::string unknown_id_string = "Detid " + std::to_string(int(did)) + ", ieta " + std::to_string(did.ieta());
458  unknown_id_string += ", iphi " + std::to_string(did.iphi()) + ", depth " + std::to_string(did.depth());
459  unknown_id_string += ", is not in emap. Skipping.";
460  _logger.warn(unknown_id_string);
461  continue;
462  }
463  HcalElectronicsId const& eid(rawid);
464 
465  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<QIE11DataFrame>(_dbService, did, digi);
466  //double sumQ = hcaldqm::utilities::sumQ_v10<QIE11DataFrame>(digi, 2.5, 0, digi.samples()-1);
467  double sumQ = hcaldqm::utilities::sumQDB<QIE11DataFrame>(_dbService, digi_fC, did, digi, 0, digi.samples() - 1);
468  if (sumQ >= _lowHBHE) {
469  //double aveTS = hcaldqm::utilities::aveTS_v10<QIE11DataFrame>(digi, 2.5, 0,digi.samples()-1);
470  double aveTS = hcaldqm::utilities::aveTSDB<QIE11DataFrame>(_dbService, digi_fC, did, digi, 0, digi.size() - 1);
471 
472  _xSignalSum.get(did) += sumQ;
473  _xSignalSum2.get(did) += sumQ * sumQ;
474  _xTimingSum.get(did) += aveTS;
475  _xTimingSum2.get(did) += aveTS * aveTS;
476  _xEntries.get(did)++;
477 
478  if (_ptype == fLocal) { // hidefed2crate
479  for (int i = 0; i < digi.samples(); i++) {
480  //_cShapeCut_FEDSlot.fill(eid, i, digi.sample(i).nominal_fC()-2.5);
482  eid, i, hcaldqm::utilities::adc2fCDBMinusPedestal<QIE11DataFrame>(_dbService, digi_fC, did, digi, i));
483  }
484  }
485  if (_ptype == fOnline || _ptype == fLocal) {
486  for (int iTS = 0; iTS < digi.samples(); ++iTS) {
487  _cADCvsTS_SubdetPM.fill(did, iTS, digi[iTS].adc());
488  }
489  }
490  if (_ptype == fOnline) {
491  for (int iTS = 0; iTS < digi.samples(); ++iTS) {
492  if (digi[iTS].tdc() < 50) {
493  double time = iTS * 25. + (digi[iTS].tdc() / 2.);
494  _cTDCTime_SubdetPM.fill(did, time);
495  _cTDCTime_depth.fill(did, time);
496  }
497  }
498  _cSumQ_SubdetPM.fill(did, sumQ);
499 
500  // Low signal in SOI
501  short soi = -1;
502  for (int i = 0; i < digi.samples(); i++) {
503  if (digi[i].soi()) {
504  soi = i;
505  break;
506  }
507  }
508  if (digi[soi].adc() < 30) {
510  }
511  }
512  }
513  }
514  for (HODigiCollection::const_iterator it = c_ho->begin(); it != c_ho->end(); ++it) {
515  const HODataFrame digi = (const HODataFrame)(*it);
516  HcalDetId did = digi.id();
517  HcalElectronicsId eid = digi.elecId();
518  //double sumQ = hcaldqm::utilities::sumQ<HODataFrame>(digi, 8.5, 0, digi.size()-1);
519  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<HODataFrame>(_dbService, did, digi);
520  double sumQ = hcaldqm::utilities::sumQDB<HODataFrame>(_dbService, digi_fC, did, digi, 0, digi.size() - 1);
521  if (sumQ >= _lowHO) {
522  //double aveTS = hcaldqm::utilities::aveTS<HODataFrame>(digi, 8.5, 0, digi.size()-1);
523  double aveTS = hcaldqm::utilities::aveTSDB<HODataFrame>(_dbService, digi_fC, did, digi, 0, digi.size() - 1);
524 
525  _xSignalSum.get(did) += sumQ;
526  _xSignalSum2.get(did) += sumQ * sumQ;
527  _xTimingSum.get(did) += aveTS;
528  _xTimingSum2.get(did) += aveTS * aveTS;
529  _xEntries.get(did)++;
530 
531  if (_ptype == fLocal) { // hidefed2crate
532  for (int i = 0; i < digi.size(); i++) {
533  //_cShapeCut_FEDSlot.fill(eid, i, digi.sample(i).nominal_fC()-8.5);
535  eid, i, hcaldqm::utilities::adc2fCDBMinusPedestal<HODataFrame>(_dbService, digi_fC, did, digi, i));
536  }
537  }
538  if (_ptype == fOnline || _ptype == fLocal) {
539  for (int iTS = 0; iTS < digi.size(); ++iTS) {
540  _cADCvsTS_SubdetPM.fill(did, iTS, digi.sample(iTS).adc());
541  }
542  }
543  if (_ptype == fOnline) {
544  _cSumQ_SubdetPM.fill(did, sumQ);
545  }
546  }
547  }
548 
549  for (QIE10DigiCollection::const_iterator it = c_QIE10->begin(); it != c_QIE10->end(); ++it) {
550  const QIE10DataFrame digi = static_cast<const QIE10DataFrame>(*it);
551  HcalDetId did = digi.detid();
552  if (did.subdet() != HcalForward) {
553  // LED monitoring from calibration channels
554  if (did.subdet() == HcalOther) {
555  HcalOtherDetId hodid(digi.detid());
556  if (hodid.subdet() == HcalCalibration) {
559  did) != _ledCalibrationChannels[HcalForward].end()) {
560  for (int i = 0; i < digi.samples(); i++) {
561  if (_ptype == fOnline) {
562  _LED_ADCvsBX_Subdet.fill(HcalDetId(HcalForward, 29, 1, 1), e.bunchCrossing(), digi[i].adc());
563  } else if (_ptype == fLocal) {
565  HcalDetId(HcalForward, 29, 1, 1), e.eventAuxiliary().id().event(), digi[i].adc());
566  }
567  }
568  }
569  }
570  }
571  continue;
572  }
574  //double sumQ = hcaldqm::utilities::sumQ_v10<QIE10DataFrame>(digi, 2.5, 0, digi.samples()-1);
575  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<QIE10DataFrame>(_dbService, did, digi);
576  double sumQ = hcaldqm::utilities::sumQDB<QIE10DataFrame>(_dbService, digi_fC, did, digi, 0, digi.samples() - 1);
577  if (sumQ >= _lowHF) {
578  //double aveTS = hcaldqm::utilities::aveTS_v10<QIE10DataFrame>(digi, 2.5, 0, digi.samples()-1);
579  double aveTS = hcaldqm::utilities::aveTSDB<QIE10DataFrame>(_dbService, digi_fC, did, digi, 0, digi.size() - 1);
580 
581  _xSignalSum.get(did) += sumQ;
582  _xSignalSum2.get(did) += sumQ * sumQ;
583  _xTimingSum.get(did) += aveTS;
584  _xTimingSum2.get(did) += aveTS * aveTS;
585  _xEntries.get(did)++;
586 
587  if (_ptype == fLocal) { // hidefed2crate
588  for (int i = 0; i < digi.samples(); ++i) {
589  // Note: this used to be digi.sample(i).nominal_fC() - 2.5, but this branch doesn't exist in QIE10DataFrame.
590  // Instead, use lookup table.
591  //_cShapeCut_FEDSlot.fill(eid, i, constants::adc2fC[digi[i].adc()]);
593  eid, i, hcaldqm::utilities::adc2fCDBMinusPedestal<QIE10DataFrame>(_dbService, digi_fC, did, digi, i));
594  }
595  }
596  if (_ptype == fOnline || _ptype == fLocal) {
597  for (int iTS = 0; iTS < digi.samples(); ++iTS) {
598  _cADCvsTS_SubdetPM.fill(did, iTS, digi[iTS].adc());
599  }
600  }
601  if (_ptype == fOnline) {
602  for (int iTS = 0; iTS < digi.samples(); ++iTS) {
603  if (digi[iTS].le_tdc() < 50) {
604  double time = iTS * 25. + (digi[iTS].le_tdc() / 2.);
605  _cTDCTime_SubdetPM.fill(did, time);
606  _cTDCTime_depth.fill(did, time);
607  }
608  }
609  _cSumQ_SubdetPM.fill(did, sumQ);
610  }
611  }
612  }
613 
615  this->_dump();
616 }
617 
618 /* virtual */ bool LEDTask::_isApplicable(edm::Event const& e) {
619  if (_ptype != fOnline) {
620  // local
622  if (!e.getByToken(_tokTrigger, ctrigger))
623  _logger.dqmthrow("Collection HcalTBTriggerData isn't available " + _tagTrigger.label() + " " +
625  return ctrigger->wasLEDTrigger();
626  } else {
627  // fOnline mode
629  if (!e.getByToken(_tokuMN, cumn)) {
630  return false;
631  }
632 
633  return (cumn->eventType() == constants::EVENTTYPE_LED);
634  }
635 
636  return false;
637 }
638 
int samples() const
total number of samples in the digi
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, int debug=0) override
DetId detid() const
Get the detector id.
T getParameter(std::string const &) const
EventNumber_t event() const
Definition: EventID.h:40
T getUntrackedParameter(std::string const &, T const &) const
double aveTS(DIGI const &digi, double ped=0, int i=0, int j=3)
Definition: Utilities.h:114
hcaldqm::Container2D _cMissing_FEDuTCA
Definition: LEDTask.h:99
hcaldqm::Container2D _cMissing_FEDVME
Definition: LEDTask.h:98
LEDTask(edm::ParameterSet const &)
Definition: LEDTask.cc:8
hcaldqm::ContainerProf2D _cSignalMean_depth
Definition: LEDTask.h:82
hcaldqm::ContainerProf2D _cTimingMean_FEDuTCA
Definition: LEDTask.h:90
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
EventAuxiliary const & eventAuxiliary() const override
Definition: Event.h:93
int const CRATE_VME_MIN
Definition: Constants.h:93
double _lowHBHE
Definition: LEDTask.h:61
edm::InputTag _taguMN
Definition: LEDTask.h:47
void warn(std::string const &msg) const
Definition: Logger.h:13
hcaldqm::ContainerProf2D _cTimingMean_depth
Definition: LEDTask.h:84
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
void fill(HcalDetId const &) override
hcaldqm::ContainerProf2D _cSignalMean_FEDVME
Definition: LEDTask.h:87
hcaldqm::Container2D _cMissing_depth
Definition: LEDTask.h:97
bool wasLEDTrigger() const
returns true if this was a LED trigger
edm::EDGetTokenT< HcalTBTriggerData > _tokTrigger
Definition: LEDTask.h:51
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
double _lowHF
Definition: LEDTask.h:63
hcaldqm::ContainerProf2D _cTimingMean_FEDVME
Definition: LEDTask.h:89
UpdateFreq
Definition: DQTask.h:16
HcalDetId const & id() const
Definition: HODataFrame.h:23
std::vector< T >::const_iterator const_iterator
int bunchCrossing() const
Definition: EventBase.h:64
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:118
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
edm::InputTag _tagHO
Definition: LEDTask.h:44
const_iterator begin() const
hcaldqm::ContainerProf2D _cSignalRMS_FEDVME
Definition: LEDTask.h:91
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
int const FIBER_VME_MIN
Definition: Constants.h:123
hcaldqm::filter::HashFilter _filter_uTCA
Definition: LEDTask.h:56
edm::InputTag _tagQIE11
Definition: LEDTask.h:43
edm::EDGetTokenT< QIE11DigiCollection > _tokQIE11
Definition: LEDTask.h:48
hcaldqm::ContainerXXX< int > _xEntries
Definition: LEDTask.h:68
int _nevents
Definition: LEDTask.h:60
int const FIBERCH_MIN
Definition: Constants.h:132
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
edm::EDGetTokenT< QIE10DigiCollection > _tokQIE10
Definition: LEDTask.h:50
hcaldqm::ContainerXXX< double > _xTimingSum
Definition: LEDTask.h:69
hcaldqm::ContainerProf2D _cTDCTime_depth
Definition: LEDTask.h:105
edm::EDGetTokenT< HcalUMNioDigi > _tokuMN
Definition: LEDTask.h:52
hcaldqm::ContainerProf2D _cSignalRMS_FEDuTCA
Definition: LEDTask.h:92
int depth() const
get the tower depth
Definition: HcalDetId.h:164
ProcessingType _ptype
Definition: DQModule.h:43
virtual void fill(uint32_t)
Definition: Container1D.cc:73
virtual void reset()
Definition: Container1D.cc:60
HcalElectronicsId const & elecId() const
Definition: HODataFrame.h:24
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
uint8_t const EVENTTYPE_LED
Definition: Constants.h:291
double _lowHO
Definition: LEDTask.h:62
void dqmthrow(std::string const &msg) const
Definition: Logger.h:12
T sqrt(T t)
Definition: SSEVec.h:19
int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
int size() const
total number of samples in the digi
Definition: HODataFrame.h:27
HcalSubdetector
Definition: HcalAssistant.h:31
uint8_t eventType() const
int const FIBER_uTCA_MIN1
Definition: Constants.h:126
hcaldqm::ContainerSingle2D _cLowSignal_CrateSlot
Definition: LEDTask.h:106
DetId detid() const
Get the detector id.
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: LEDTask.cc:60
std::vector< HcalGenericDetId > allPrecisionId() const
Logger _logger
Definition: DQModule.h:54
#define end
Definition: vmac.h:39
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
RunAuxiliary const & runAuxiliary() const override
Definition: Run.h:61
edm::InputTag _tagTrigger
Definition: LEDTask.h:46
std::string _name
Definition: DQModule.h:41
HcalElectronicsMap const * _emap
Definition: DQTask.h:59
hcaldqm::ContainerProf2D _cSignalMean_FEDuTCA
Definition: LEDTask.h:88
hcaldqm::ContainerProf2D _cTimingRMS_depth
Definition: LEDTask.h:85
hcaldqm::Container1D _cSignalRMS_Subdet
Definition: LEDTask.h:74
hcaldqm::filter::HashFilter _filter_VME
Definition: LEDTask.h:57
int const CRATE_uTCA_MIN
Definition: Constants.h:98
hcaldqm::Container2D _LED_ADCvsEvn_Subdet
Definition: LEDTask.h:111
const_iterator end() const
int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
int const CALIBEVENTS_MIN
Definition: Constants.h:243
hcaldqm::ContainerXXX< double > _xTimingSum2
Definition: LEDTask.h:70
hcaldqm::Container1D _cTDCTime_SubdetPM
Definition: LEDTask.h:104
hcaldqm::ContainerProf2D _cTimingRMS_FEDVME
Definition: LEDTask.h:93
hcaldqm::ContainerProf2D _cTimingRMS_FEDuTCA
Definition: LEDTask.h:94
edm::EDGetTokenT< HODigiCollection > _tokHO
Definition: LEDTask.h:49
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:87
hcaldqm::ContainerXXX< double > _xSignalSum
Definition: LEDTask.h:66
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
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
example_stream void bookHistograms(DQMStore::IBooker &,@example_stream edm::Run const &,@example_stream edm::EventSetup const &) override
void _process(edm::Event const &, edm::EventSetup const &) override
Definition: LEDTask.cc:405
hcaldqm::Container1D _cTimingMean_Subdet
Definition: LEDTask.h:75
std::map< HcalSubdetector, std::vector< HcalDetId > > _ledCalibrationChannels
Definition: LEDTask.h:109
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 _resetMonitors(hcaldqm::UpdateFreq) override
Definition: LEDTask.cc:335
std::string const & label() const
Definition: InputTag.h:36
const_iterator end() const
hcaldqm::ContainerProf2D _cSignalRMS_depth
Definition: LEDTask.h:83
EventID const & id() const
bool _isApplicable(edm::Event const &) override
Definition: LEDTask.cc:618
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:197
#define begin
Definition: vmac.h:32
edm::ESHandle< HcalDbService > _dbService
Definition: DQTask.h:58
hcaldqm::Container1D _cTimingRMS_Subdet
Definition: LEDTask.h:76
T get() const
Definition: EventSetup.h:73
void fill(HcalDetId const &) override
Definition: Container2D.cc:52
virtual void _dump()
Definition: LEDTask.cc:337
const HcalElectronicsMap * getHcalMapping() const
virtual void initialize(FilterType ftype, hashfunctions::HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:17
std::string _subsystem
Definition: DQModule.h:48
hcaldqm::ContainerXXX< double > _xSignalSum2
Definition: LEDTask.h:67
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: LEDTask.h:55
hcaldqm::Container2D _LED_ADCvsBX_Subdet
Definition: LEDTask.h:110
hcaldqm::Container1D _cSumQ_SubdetPM
Definition: LEDTask.h:103
hcaldqm::ContainerProf1D _cShapeCut_FEDSlot
Definition: LEDTask.h:79
edm::InputTag _tagQIE10
Definition: LEDTask.h:45
virtual void fill(int, int)
virtual void initialize(hashfunctions::HashType, int debug=0)
Definition: ContainerXXX.h:81
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: Container2D.cc:558
int samples() const
total number of samples in the digi
hcaldqm::Container2D _cADCvsTS_SubdetPM
Definition: LEDTask.h:102
Readout chain identification for Hcal.
std::string const & instance() const
Definition: InputTag.h:37
RunNumber_t run() const
Definition: RunAuxiliary.h:31
int const SLOT_uTCA_MIN
Definition: Constants.h:105
const_iterator begin() const
Definition: Run.h:45
ib
Definition: cuy.py:662
double sumQ(DIGI const &digi, double ped, int i=0, int j=3)
Definition: Utilities.h:126
hcaldqm::Container1D _cSignalMean_Subdet
Definition: LEDTask.h:73