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;
8  DQTask(ps)
9 {
10  _nevents = ps.getUntrackedParameter<int>("nevents", 2000);
11  // tags
13  edm::InputTag("hcalDigis"));
15  edm::InputTag("hcalDigis"));
17  edm::InputTag("hcalDigis"));
19  edm::InputTag("hcalDigis"));
21  edm::InputTag("tbunpacker"));
23  edm::InputTag("hcalDigis"));
24  _tokHBHE = consumes<HBHEDigiCollection>(_tagHBHE);
25  _tokHE = consumes<QIE11DigiCollection>(_tagHE);
26  _tokHO = consumes<HODigiCollection>(_tagHO);
27  _tokHF = consumes<QIE10DigiCollection>(_tagHF);
28  _tokTrigger = consumes<HcalTBTriggerData>(_tagTrigger);
29  _tokuMN = consumes<HcalUMNioDigi>(_taguMN);
30 
31  // constants
32  _lowHBHE = ps.getUntrackedParameter<double>("lowHBHE",
33  20);
34  _lowHE = ps.getUntrackedParameter<double>("lowHE",
35  20);
36  _lowHO = ps.getUntrackedParameter<double>("lowHO",
37  20);
38  _lowHF = ps.getUntrackedParameter<double>("lowHF",
39  20);
40 
41  // LED calibration channels
42  std::vector<edm::ParameterSet> vLedCalibChannels = ps.getParameter<std::vector<edm::ParameterSet>>("ledCalibrationChannels");
43  for (int i = 0; i <= 3; ++i) {
44  HcalSubdetector this_subdet = HcalEmpty;
45  switch (i) {
46  case 0:
47  this_subdet = HcalBarrel;
48  break;
49  case 1:
50  this_subdet = HcalEndcap;
51  break;
52  case 2:
53  this_subdet = HcalOuter;
54  break;
55  case 3:
56  this_subdet = HcalForward;
57  break;
58  default:
59  this_subdet = HcalEmpty;
60  break;
61  }
62  std::vector<int32_t> subdet_calib_ietas = vLedCalibChannels[i].getUntrackedParameter<std::vector<int32_t>>("ieta");
63  std::vector<int32_t> subdet_calib_iphis = vLedCalibChannels[i].getUntrackedParameter<std::vector<int32_t>>("iphi");
64  std::vector<int32_t> subdet_calib_depths = vLedCalibChannels[i].getUntrackedParameter<std::vector<int32_t>>("depth");
65  for (unsigned int ichannel = 0; ichannel < subdet_calib_ietas.size(); ++ichannel) {
66  _ledCalibrationChannels[this_subdet].push_back(HcalDetId(HcalOther, subdet_calib_ietas[ichannel], subdet_calib_iphis[ichannel], subdet_calib_depths[ichannel]));
67  }
68  }
69 
70 }
71 
73  edm::Run const& r, edm::EventSetup const& es)
74 {
75  if (_ptype==fLocal)
76  if (r.runAuxiliary().run()==1)
77  return;
78 
79  DQTask::bookHistograms(ib, r, es);
80 
82  es.get<HcalDbRecord>().get(dbService);
83  _emap = dbService->getHcalMapping();
84 
85  std::vector<uint32_t> vhashVME;
86  std::vector<uint32_t> vhashuTCA;
87  std::vector<uint32_t> vhashC36;
88  vhashVME.push_back(HcalElectronicsId(constants::FIBERCH_MIN,
90  vhashuTCA.push_back(HcalElectronicsId(CRATE_uTCA_MIN, SLOT_uTCA_MIN,
91  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
93  vhashVME);
95  vhashuTCA);
96 
97  // INITIALIZE
98  _cSignalMean_Subdet.initialize(_name, "SignalMean",
102  _cSignalRMS_Subdet.initialize(_name, "SignalRMS",
106  _cTimingMean_Subdet.initialize(_name, "TimingMean",
110  _cTimingRMS_Subdet.initialize(_name, "TimingRMS",
114 
115  if (_ptype == fLocal) { // hidefed2crate
116  _cSignalMean_FEDVME.initialize(_name, "SignalMean",
121  _cSignalMean_FEDuTCA.initialize(_name, "SignalMean",
126  _cSignalRMS_FEDVME.initialize(_name, "SignalRMS",
131  _cSignalRMS_FEDuTCA.initialize(_name, "SignalRMS",
136  _cTimingMean_FEDVME.initialize(_name, "TimingMean",
141  _cTimingMean_FEDuTCA.initialize(_name, "TimingMean",
146  _cTimingRMS_FEDVME.initialize(_name, "TimingRMS",
151  _cTimingRMS_FEDuTCA.initialize(_name, "TimingRMS",
156 
161  }
162 
163  _cSignalMean_depth.initialize(_name, "SignalMean",
168  _cSignalRMS_depth.initialize(_name, "SignalRMS",
173  _cTimingMean_depth.initialize(_name, "TimingMean",
178  _cTimingRMS_depth.initialize(_name, "TimingRMS",
183 
184  _cMissing_depth.initialize(_name, "Missing",
189  if (_ptype != fOffline) { // hidefed2crate
190  _cMissing_FEDVME.initialize(_name, "Missing",
200  }
201 
202  // Plots for LED in global
203  if (_ptype == fOnline) {
209  _cLowSignal_CrateSlot.initialize(_name, "LowSignal",
217  _cTDCTime_SubdetPM.initialize(_name, "TDCTime",
221  _cTDCTime_depth.initialize(_name, "TDCTime",
226  _LED_ADCvsBX_Subdet.initialize(_name, "LED_ADCvsBX",
231  } else if (_ptype == fLocal) {
232  _LED_ADCvsEvn_Subdet.initialize(_name, "LED_ADCvsEvn",
237  }
238 
239  // initialize compact containers
245 
246  // BOOK
251 
256 
258  if (_ptype == fLocal) { // hidefed2crate
270  }
271  if (_ptype == fOnline) {
277  }
278 
279  if (_ptype == fOnline) {
281  } else if (_ptype == fLocal) {
283  }
284 
290 
292 }
293 
295 {
296  DQTask::_resetMonitors(uf);
297 }
298 
299 /* virtual */ void LEDTask::_dump()
300 {
309 
310  if (_ptype == fLocal) { // hidefed2crate
319  }
320 
321  std::vector<HcalGenericDetId> dids = _emap->allPrecisionId();
322  for (std::vector<HcalGenericDetId>::const_iterator it=dids.begin();
323  it!=dids.end(); ++it)
324  {
325  if (!it->isHcalDetId())
326  continue;
327  HcalDetId did = HcalDetId(it->rawId());
329  int n = _xEntries.get(did);
330  double msig = _xSignalSum.get(did)/n;
331  double mtim = _xTimingSum.get(did)/n;
332  double rsig = sqrt(_xSignalSum2.get(did)/n-msig*msig);
333  double rtim = sqrt(_xTimingSum2.get(did)/n-mtim*mtim);
334 
335  // channels missing or low signal
336  if (n==0)
337  {
338  _cMissing_depth.fill(did);
339  if (_ptype == fLocal) { // hidefed2crate
340  if (eid.isVMEid())
342  else
344  }
345  continue;
346  }
347  _cSignalMean_Subdet.fill(did, msig);
348  _cSignalMean_depth.fill(did, msig);
349  _cSignalRMS_Subdet.fill(did, rsig);
350  _cSignalRMS_depth.fill(did, rsig);
351  _cTimingMean_Subdet.fill(did, mtim);
352  _cTimingMean_depth.fill(did, mtim);
353  _cTimingRMS_Subdet.fill(did, rtim);
354  _cTimingRMS_depth.fill(did, rtim);
355  if (_ptype == fLocal) { // hidefed2crate
356  if (eid.isVMEid())
357  {
359  _cSignalRMS_FEDVME.fill(eid, rsig);
361  _cTimingRMS_FEDVME.fill(eid, rtim);
362  }
363  else
364  {
369  }
370  }
371  }
372 }
373 
374 /* virtual */ void LEDTask::_process(edm::Event const& e,
375  edm::EventSetup const& es)
376 {
381 
382  if (!e.getByToken(_tokHBHE, chbhe))
383  _logger.dqmthrow("Collection HBHEDigiCollection isn't available "
384  + _tagHBHE.label() + " " + _tagHBHE.instance());
385  if (!e.getByToken(_tokHO, cho))
386  _logger.dqmthrow("Collection HODigiCollection isn't available "
387  + _tagHO.label() + " " + _tagHO.instance());
388  if (!e.getByToken(_tokHF, chf))
389  _logger.dqmthrow("Collection QIE10DigiCollection isn't available "
390  + _tagHF.label() + " " + _tagHF.instance());
391  if (!e.getByToken(_tokHE, che))
392  _logger.dqmthrow("Collection QIE11DigiCollection isn't available "
393  + _tagHE.label() + " " + _tagHE.instance());
394 
395 // int currentEvent = e.eventAuxiliary().id().event();
396 
397  for (HBHEDigiCollection::const_iterator it=chbhe->begin();
398  it!=chbhe->end(); ++it)
399  {
400  const HBHEDataFrame digi = (const HBHEDataFrame)(*it);
401  HcalDetId did = digi.id();
402  HcalElectronicsId eid = digi.elecId();
403 
404  // Get total charge and apply charge cut
405  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<HBHEDataFrame>(_dbService, did, digi);
406  //double sumQ = hcaldqm::utilities::sumQ<HBHEDataFrame>(digi, 2.5, 0, digi.size()-1);
407  double sumQ = hcaldqm::utilities::sumQDB<HBHEDataFrame>(_dbService, digi_fC, did, digi, 0, digi.size()-1);
408  if (sumQ >= _lowHBHE) {
409  //double aveTS = hcaldqm::utilities::aveTS<HBHEDataFrame>(digi, 2.5, 0,digi.size()-1);
410  double aveTS = hcaldqm::utilities::aveTSDB<HBHEDataFrame>(_dbService, digi_fC, did, digi, 0, digi.size()-1);
411 
412  _xSignalSum.get(did)+=sumQ;
413  _xSignalSum2.get(did)+=sumQ*sumQ;
414  _xTimingSum.get(did)+=aveTS;
415  _xTimingSum2.get(did)+=aveTS*aveTS;
416  _xEntries.get(did)++;
417 
418  if (_ptype == fLocal) { // hidefed2crate
419  for (int i=0; i<digi.size(); i++) {
420  //_cShapeCut_FEDSlot.fill(eid, i, digi.sample(i).nominal_fC()-2.5);
421  _cShapeCut_FEDSlot.fill(eid, i, hcaldqm::utilities::adc2fCDBMinusPedestal<HBHEDataFrame>(_dbService, digi_fC, did, digi, i));
422  }
423  }
424 
425  if (_ptype == fOnline) {
426  for (int iTS = 0; iTS < digi.size(); ++iTS) {
427  _cADCvsTS_SubdetPM.fill(did, iTS, digi.sample(iTS).adc());
428  }
429  _cSumQ_SubdetPM.fill(did, sumQ);
430  }
431  }
432  }
433 
434  for (QIE11DigiCollection::const_iterator it=che->begin(); it!=che->end();
435  ++it)
436  {
437  const QIE11DataFrame digi = static_cast<const QIE11DataFrame>(*it);
438  HcalDetId const& did = digi.detid();
439  if (did.subdet() != HcalEndcap) {
440  // LED monitoring from calibration channels
441  if (did.subdet() == HcalOther) {
442  HcalOtherDetId hodid(digi.detid());
443  if (hodid.subdet() == HcalCalibration) {
445  for (int i=0; i<digi.samples(); i++) {
446  if (_ptype == fOnline) {
447  _LED_ADCvsBX_Subdet.fill(HcalDetId(HcalEndcap, 16, 1, 1), e.bunchCrossing(), digi[i].adc());
448  } else if (_ptype == fLocal) {
449  _LED_ADCvsEvn_Subdet.fill(HcalDetId(HcalEndcap, 16, 1, 1), e.eventAuxiliary().id().event(), digi[i].adc());
450  }
451  }
452  }
453  }
454  }
455 
456  continue;
457  }
458  uint32_t rawid = _ehashmap.lookup(did);
459  if (!rawid) {
460  std::string unknown_id_string="Detid "+std::to_string(int(did))+", ieta "+std::to_string(did.ieta());
461  unknown_id_string+=", iphi "+std::to_string(did.iphi())+", depth "+std::to_string(did.depth());
462  unknown_id_string+=", is not in emap. Skipping.";
463  _logger.warn(unknown_id_string);
464  continue;
465  }
466  HcalElectronicsId const& eid(rawid);
467 
468  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<QIE11DataFrame>(_dbService, did, digi);
469  //double sumQ = hcaldqm::utilities::sumQ_v10<QIE11DataFrame>(digi, 2.5, 0, digi.samples()-1);
470  double sumQ = hcaldqm::utilities::sumQDB<QIE11DataFrame>(_dbService, digi_fC, did, digi, 0, digi.samples()-1);
471  if (sumQ >= _lowHE) {
472  //double aveTS = hcaldqm::utilities::aveTS_v10<QIE11DataFrame>(digi, 2.5, 0,digi.samples()-1);
473  double aveTS = hcaldqm::utilities::aveTSDB<QIE11DataFrame>(_dbService, digi_fC, did, digi, 0, digi.size()-1);
474 
475  _xSignalSum.get(did)+=sumQ;
476  _xSignalSum2.get(did)+=sumQ*sumQ;
477  _xTimingSum.get(did)+=aveTS;
478  _xTimingSum2.get(did)+=aveTS*aveTS;
479  _xEntries.get(did)++;
480 
481  if (_ptype == fLocal) { // hidefed2crate
482  for (int i=0; i<digi.samples(); i++) {
483  //_cShapeCut_FEDSlot.fill(eid, i, digi.sample(i).nominal_fC()-2.5);
484  _cShapeCut_FEDSlot.fill(eid, i, hcaldqm::utilities::adc2fCDBMinusPedestal<QIE11DataFrame>(_dbService, digi_fC, did, digi, i));
485  }
486  }
487  if (_ptype == fOnline) {
488  for (int iTS = 0; iTS < digi.samples(); ++iTS) {
489  _cADCvsTS_SubdetPM.fill(did, iTS, digi[iTS].adc());
490  if (digi[iTS].tdc() <50) {
491  double time = iTS*25. + (digi[iTS].tdc() / 2.);
492  _cTDCTime_SubdetPM.fill(did, time);
493  _cTDCTime_depth.fill(did, time);
494  }
495  }
496  _cSumQ_SubdetPM.fill(did, sumQ);
497 
498  // Low signal in SOI
499  short soi = -1;
500  for (int i=0; i<digi.samples(); i++) {
501  if (digi[i].soi()) {
502  soi = i;
503  break;
504  }
505  }
506  if (digi[soi].adc() < 30) {
508  }
509  }
510  }
511  }
513  it!=cho->end(); ++it)
514  {
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);
534  _cShapeCut_FEDSlot.fill(eid, i, hcaldqm::utilities::adc2fCDBMinusPedestal<HODataFrame>(_dbService, digi_fC, did, digi, i));
535  }
536  }
537  if (_ptype == fOnline) {
538  for (int iTS = 0; iTS < digi.size(); ++iTS) {
539  _cADCvsTS_SubdetPM.fill(did, iTS, digi.sample(iTS).adc());
540  }
541  _cSumQ_SubdetPM.fill(did, sumQ);
542  }
543  }
544  }
545 
547  it!=chf->end(); ++it)
548  {
549  const QIE10DataFrame digi = static_cast<const QIE10DataFrame>(*it);
550  HcalDetId did = digi.detid();
551  if (did.subdet() != HcalForward) {
552  // LED monitoring from calibration channels
553  if (did.subdet() == HcalOther) {
554  HcalOtherDetId hodid(digi.detid());
555  if (hodid.subdet() == HcalCalibration) {
557  for (int i=0; i<digi.samples(); i++) {
558  if (_ptype == fOnline) {
559  _LED_ADCvsBX_Subdet.fill(HcalDetId(HcalForward, 29, 1, 1), e.bunchCrossing(), digi[i].adc());
560  } else if (_ptype == fLocal) {
561  _LED_ADCvsEvn_Subdet.fill(HcalDetId(HcalForward, 29, 1, 1), e.eventAuxiliary().id().event(), digi[i].adc());
562  }
563  }
564  }
565  }
566  }
567  continue;
568  }
570  //double sumQ = hcaldqm::utilities::sumQ_v10<QIE10DataFrame>(digi, 2.5, 0, digi.samples()-1);
571  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<QIE10DataFrame>(_dbService, did, digi);
572  double sumQ = hcaldqm::utilities::sumQDB<QIE10DataFrame>(_dbService, digi_fC, did, digi, 0, digi.samples()-1);
573  if (sumQ >= _lowHF) {
574  //double aveTS = hcaldqm::utilities::aveTS_v10<QIE10DataFrame>(digi, 2.5, 0, digi.samples()-1);
575  double aveTS = hcaldqm::utilities::aveTSDB<QIE10DataFrame>(_dbService, digi_fC, did, digi, 0, digi.size()-1);
576 
577  _xSignalSum.get(did)+=sumQ;
578  _xSignalSum2.get(did)+=sumQ*sumQ;
579  _xTimingSum.get(did)+=aveTS;
580  _xTimingSum2.get(did)+=aveTS*aveTS;
581  _xEntries.get(did)++;
582 
583  if (_ptype == fLocal) { // hidefed2crate
584  for (int i = 0; i < digi.samples(); ++i) {
585  // Note: this used to be digi.sample(i).nominal_fC() - 2.5, but this branch doesn't exist in QIE10DataFrame.
586  // Instead, use lookup table.
587  //_cShapeCut_FEDSlot.fill(eid, i, constants::adc2fC[digi[i].adc()]);
588  _cShapeCut_FEDSlot.fill(eid, i, hcaldqm::utilities::adc2fCDBMinusPedestal<QIE10DataFrame>(_dbService, digi_fC, did, digi, i));
589  }
590  }
591  if (_ptype == fOnline) {
592  for (int iTS = 0; iTS < digi.samples(); ++iTS) {
593  _cADCvsTS_SubdetPM.fill(did, iTS, digi[iTS].adc());
594  if (digi[iTS].le_tdc() <50) {
595  double time = iTS*25. + (digi[iTS].le_tdc() / 2.);
596  _cTDCTime_SubdetPM.fill(did, time);
597  _cTDCTime_depth.fill(did, time);
598  }
599  }
600  _cSumQ_SubdetPM.fill(did, sumQ);
601  }
602  }
603  }
604 
605  if (_ptype==fOnline && _evsTotal>0 &&
607  this->_dump();
608 }
609 
610 /* virtual */ bool LEDTask::_isApplicable(edm::Event const& e)
611 {
612  if (_ptype!=fOnline)
613  {
614  // local
616  if (!e.getByToken(_tokTrigger, ctrigger))
617  _logger.dqmthrow("Collection HcalTBTriggerData isn't available "
618  + _tagTrigger.label() + " " + _tagTrigger.instance());
619  return ctrigger->wasLEDTrigger();
620  } else {
621  // fOnline mode
623  if (!e.getByToken(_tokuMN, cumn)) {
624  return false;
625  }
626 
627  return (cumn->eventType() == constants::EVENTTYPE_LED);
628  }
629 
630  return false;
631 }
632 
634 
635 
int adc(sample_type sample)
get the ADC sample (12 bits)
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:41
edm::EDGetTokenT< QIE11DigiCollection > _tokHE
Definition: LEDTask.h:54
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:107
hcaldqm::Container2D _cMissing_FEDuTCA
Definition: LEDTask.h:106
hcaldqm::Container2D _cMissing_FEDVME
Definition: LEDTask.h:105
LEDTask(edm::ParameterSet const &)
Definition: LEDTask.cc:7
hcaldqm::ContainerProf2D _cSignalMean_depth
Definition: LEDTask.h:89
hcaldqm::ContainerProf2D _cTimingMean_FEDuTCA
Definition: LEDTask.h:97
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:40
EventAuxiliary const & eventAuxiliary() const override
Definition: Event.h:93
int const CRATE_VME_MIN
Definition: Constants.h:111
double _lowHBHE
Definition: LEDTask.h:67
edm::InputTag _taguMN
Definition: LEDTask.h:52
void warn(std::string const &msg) const
Definition: Logger.h:20
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
hcaldqm::ContainerProf2D _cTimingMean_depth
Definition: LEDTask.h:91
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:142
void fill(HcalDetId const &) override
hcaldqm::ContainerProf2D _cSignalMean_FEDVME
Definition: LEDTask.h:94
hcaldqm::Container2D _cMissing_depth
Definition: LEDTask.h:104
bool wasLEDTrigger() const
returns true if this was a LED trigger
edm::EDGetTokenT< HcalTBTriggerData > _tokTrigger
Definition: LEDTask.h:57
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
double _lowHF
Definition: LEDTask.h:70
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
edm::EDGetTokenT< HBHEDigiCollection > _tokHBHE
Definition: LEDTask.h:53
int size() const
total number of samples in the digi
Definition: HBHEDataFrame.h:31
edm::InputTag _tagHE
Definition: LEDTask.h:48
hcaldqm::ContainerProf2D _cTimingMean_FEDVME
Definition: LEDTask.h:96
UpdateFreq
Definition: DQTask.h:17
HcalDetId const & id() const
Definition: HODataFrame.h:27
std::vector< HBHEDataFrame >::const_iterator const_iterator
int bunchCrossing() const
Definition: EventBase.h:66
virtual void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0)
virtual example_stream void bookHistograms(DQMStore::IBooker &,@example_stream edm::Run const &,@example_stream edm::EventSetup const &) override
int const SPIGOT_MIN
Definition: Constants.h:136
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
edm::InputTag _tagHO
Definition: LEDTask.h:49
const_iterator begin() const
hcaldqm::ContainerProf2D _cSignalRMS_FEDVME
Definition: LEDTask.h:98
edm::InputTag _tagHF
Definition: LEDTask.h:50
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::filter::HashFilter _filter_uTCA
Definition: LEDTask.h:62
hcaldqm::ContainerXXX< int > _xEntries
Definition: LEDTask.h:75
int _nevents
Definition: LEDTask.h:66
int const FIBERCH_MIN
Definition: Constants.h:151
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
hcaldqm::ContainerXXX< double > _xTimingSum
Definition: LEDTask.h:76
hcaldqm::ContainerProf2D _cTDCTime_depth
Definition: LEDTask.h:112
edm::EDGetTokenT< HcalUMNioDigi > _tokuMN
Definition: LEDTask.h:58
hcaldqm::ContainerProf2D _cSignalRMS_FEDuTCA
Definition: LEDTask.h:99
int depth() const
get the tower depth
Definition: HcalDetId.h:162
ProcessingType _ptype
Definition: DQModule.h:59
virtual void fill(uint32_t)
Definition: Container1D.cc:82
virtual void reset()
Definition: Container1D.cc:65
HcalElectronicsId const & elecId() const
Definition: HODataFrame.h:28
uint8_t const EVENTTYPE_LED
Definition: Constants.h:325
double _lowHE
Definition: LEDTask.h:68
double _lowHO
Definition: LEDTask.h:69
void dqmthrow(std::string const &msg) const
Definition: Logger.h:15
T sqrt(T t)
Definition: SSEVec.h:18
int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
int size() const
total number of samples in the digi
Definition: HODataFrame.h:31
HcalSubdetector
Definition: HcalAssistant.h:31
uint8_t eventType() const
int const FIBER_uTCA_MIN1
Definition: Constants.h:144
hcaldqm::ContainerSingle2D _cLowSignal_CrateSlot
Definition: LEDTask.h:113
DetId detid() const
Get the detector id.
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: LEDTask.cc:72
std::vector< HcalGenericDetId > allPrecisionId() const
Logger _logger
Definition: DQModule.h:70
#define end
Definition: vmac.h:39
RunAuxiliary const & runAuxiliary() const override
Definition: Run.h:63
edm::InputTag _tagTrigger
Definition: LEDTask.h:51
std::string _name
Definition: DQModule.h:57
HcalElectronicsMap const * _emap
Definition: DQTask.h:73
hcaldqm::ContainerProf2D _cSignalMean_FEDuTCA
Definition: LEDTask.h:95
hcaldqm::ContainerProf2D _cTimingRMS_depth
Definition: LEDTask.h:92
edm::EDGetTokenT< QIE10DigiCollection > _tokHF
Definition: LEDTask.h:56
hcaldqm::Container1D _cSignalRMS_Subdet
Definition: LEDTask.h:81
edm::InputTag _tagHBHE
Definition: LEDTask.h:47
hcaldqm::filter::HashFilter _filter_VME
Definition: LEDTask.h:63
int const CRATE_uTCA_MIN
Definition: Constants.h:116
hcaldqm::Container2D _LED_ADCvsEvn_Subdet
Definition: LEDTask.h:118
const_iterator end() const
int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
int const CALIBEVENTS_MIN
Definition: Constants.h:264
hcaldqm::ContainerXXX< double > _xTimingSum2
Definition: LEDTask.h:77
hcaldqm::Container1D _cTDCTime_SubdetPM
Definition: LEDTask.h:111
hcaldqm::ContainerProf2D _cTimingRMS_FEDVME
Definition: LEDTask.h:100
hcaldqm::ContainerProf2D _cTimingRMS_FEDuTCA
Definition: LEDTask.h:101
edm::EDGetTokenT< HODigiCollection > _tokHO
Definition: LEDTask.h:55
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:97
hcaldqm::ContainerXXX< double > _xSignalSum
Definition: LEDTask.h:73
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container1D.cc:777
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:31
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
void _process(edm::Event const &, edm::EventSetup const &) override
Definition: LEDTask.cc:374
hcaldqm::Container1D _cTimingMean_Subdet
Definition: LEDTask.h:82
std::map< HcalSubdetector, std::vector< HcalDetId > > _ledCalibrationChannels
Definition: LEDTask.h:116
const HcalElectronicsId & elecId() const
Definition: HBHEDataFrame.h:28
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fEnergy), int debug=0) override
void _resetMonitors(hcaldqm::UpdateFreq) override
Definition: LEDTask.cc:294
std::string const & label() const
Definition: InputTag.h:36
const_iterator end() const
hcaldqm::ContainerProf2D _cSignalRMS_depth
Definition: LEDTask.h:90
EventID const & id() const
bool _isApplicable(edm::Event const &) override
Definition: LEDTask.cc:610
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:247
#define begin
Definition: vmac.h:32
edm::ESHandle< HcalDbService > _dbService
Definition: DQTask.h:72
hcaldqm::Container1D _cTimingRMS_Subdet
Definition: LEDTask.h:83
T get() const
Definition: EventSetup.h:62
void fill(HcalDetId const &) override
Definition: Container2D.cc:58
virtual void _dump()
Definition: LEDTask.cc:299
const HcalElectronicsMap * getHcalMapping() const
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::ContainerXXX< double > _xSignalSum2
Definition: LEDTask.h:74
const HcalDetId & id() const
Definition: HBHEDataFrame.h:27
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: LEDTask.h:61
hcaldqm::Container2D _LED_ADCvsBX_Subdet
Definition: LEDTask.h:117
hcaldqm::Container1D _cSumQ_SubdetPM
Definition: LEDTask.h:110
hcaldqm::ContainerProf1D _cShapeCut_FEDSlot
Definition: LEDTask.h:86
virtual void fill(int, int)
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:894
int samples() const
total number of samples in the digi
hcaldqm::Container2D _cADCvsTS_SubdetPM
Definition: LEDTask.h:109
Readout chain identification for Hcal.
std::string const & instance() const
Definition: InputTag.h:37
RunNumber_t run() const
Definition: RunAuxiliary.h:41
int const SLOT_uTCA_MIN
Definition: Constants.h:123
const_iterator begin() const
Definition: Run.h:44
ib
Definition: cuy.py:662
double sumQ(DIGI const &digi, double ped, int i=0, int j=3)
Definition: Utilities.h:121
hcaldqm::Container1D _cSignalMean_Subdet
Definition: LEDTask.h:80