CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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  : DQTask(ps), hcalDbServiceToken_(esConsumes<HcalDbService, HcalDbRecord, edm::Transition::BeginRun>()) {
10  _nevents = ps.getUntrackedParameter<int>("nevents", 2000);
11  // tags
12  _tagQIE11 = ps.getUntrackedParameter<edm::InputTag>("tagHE", edm::InputTag("hcalDigis"));
13  _tagHO = ps.getUntrackedParameter<edm::InputTag>("tagHO", edm::InputTag("hcalDigis"));
14  _tagQIE10 = ps.getUntrackedParameter<edm::InputTag>("tagHF", edm::InputTag("hcalDigis"));
15  _tagTrigger = ps.getUntrackedParameter<edm::InputTag>("tagTrigger", edm::InputTag("tbunpacker"));
16  _taguMN = ps.getUntrackedParameter<edm::InputTag>("taguMN", edm::InputTag("hcalDigis"));
17  _tokQIE11 = consumes<QIE11DigiCollection>(_tagQIE11);
18  _tokHO = consumes<HODigiCollection>(_tagHO);
19  _tokQIE10 = consumes<QIE10DigiCollection>(_tagQIE10);
20  _tokTrigger = consumes<HcalTBTriggerData>(_tagTrigger);
21  _tokuMN = consumes<HcalUMNioDigi>(_taguMN);
22 
23  // constants
24  _lowHBHE = ps.getUntrackedParameter<double>("lowHBHE", 20);
25  _lowHO = ps.getUntrackedParameter<double>("lowHO", 20);
26  _lowHF = ps.getUntrackedParameter<double>("lowHF", 20);
27 }
28 
29 /* virtual */ void LEDTask::bookHistograms(DQMStore::IBooker& ib, edm::Run const& r, edm::EventSetup const& es) {
30  if (_ptype == fLocal)
31  if (r.runAuxiliary().run() == 1)
32  return;
33 
34  DQTask::bookHistograms(ib, r, es);
35 
37  _emap = dbService->getHcalMapping();
38 
39  // Book LED calibration channels from emap
40  std::vector<HcalElectronicsId> eids = _emap->allElectronicsId();
41  for (unsigned i = 0; i < eids.size(); i++) {
42  HcalElectronicsId eid = eids[i];
43  DetId id = _emap->lookup(eid);
44  if (HcalGenericDetId(id.rawId()).isHcalCalibDetId()) {
45  HcalCalibDetId calibId(id);
47  HcalSubdetector this_subdet = HcalEmpty;
48  switch (calibId.hcalSubdet()) {
49  case HcalBarrel:
50  this_subdet = HcalBarrel;
51  break;
52  case HcalEndcap:
53  this_subdet = HcalEndcap;
54  break;
55  case HcalOuter:
56  this_subdet = HcalOuter;
57  break;
58  case HcalForward:
59  this_subdet = HcalForward;
60  break;
61  default:
62  this_subdet = HcalEmpty;
63  break;
64  }
65  _ledCalibrationChannels[this_subdet].push_back(
66  HcalDetId(HcalOther, calibId.ieta(), calibId.iphi(), calibId.cboxChannel()));
67  }
68  }
69  }
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  "SignalRMS",
120  0);
122  "TimingMean",
127  0);
129  "TimingRMS",
134  0);
135 
137  "Shape",
141  0);
142  }
143 
145  "SignalMean",
150  0);
152  "SignalRMS",
157  0);
159  "TimingMean",
164  0);
166  "TimingRMS",
171  0);
172 
174  "Missing",
179  0);
180  if (_ptype != fOffline) { // hidefed2crate
182  "Missing",
187  0);
188  }
189 
190  // Plots for LED in global
191  if (_ptype == fOnline || _ptype == fLocal) {
193  "ADCvsTS",
198  0);
199  }
200  if (_ptype == fOnline) {
202  "LowSignal",
206  0);
208  "SumQ",
212  0);
214  "TDCTime",
218  0);
220  "TDCTime",
225  0);
227  "LED_ADCvsBX",
232  0);
233  } else if (_ptype == fLocal) {
235  "LED_ADCvsEvn",
240  0);
241  }
242 
243  // initialize compact containers
249 
250  // BOOK
255 
260 
262  if (_ptype == fLocal) { // hidefed2crate
269  }
270  if (_ptype == fOnline || _ptype == fLocal) {
272  }
273  if (_ptype == fOnline) {
278  }
279 
280  if (_ptype == fOnline) {
282  } else if (_ptype == fLocal) {
284  }
285 
291 
293 }
294 
295 /* virtual */ void LEDTask::_resetMonitors(hcaldqm::UpdateFreq uf) { DQTask::_resetMonitors(uf); }
296 
297 /* virtual */ void LEDTask::_dump() {
306 
307  if (_ptype == fLocal) { // hidefed2crate
312  }
313 
314  std::vector<HcalGenericDetId> dids = _emap->allPrecisionId();
315  for (std::vector<HcalGenericDetId>::const_iterator it = dids.begin(); it != dids.end(); ++it) {
316  if (!it->isHcalDetId())
317  continue;
318  HcalDetId did = HcalDetId(it->rawId());
320  int n = _xEntries.get(did);
321  double msig = _xSignalSum.get(did) / n;
322  double mtim = _xTimingSum.get(did) / n;
323  double rsig = sqrt(_xSignalSum2.get(did) / n - msig * msig);
324  double rtim = sqrt(_xTimingSum2.get(did) / n - mtim * mtim);
325 
326  // channels missing or low signal
327  if (n == 0) {
328  _cMissing_depth.fill(did);
329  if (_ptype == fLocal) { // hidefed2crate
330  if (!eid.isVMEid())
332  }
333  continue;
334  }
335  _cSignalMean_Subdet.fill(did, msig);
336  _cSignalMean_depth.fill(did, msig);
337  _cSignalRMS_Subdet.fill(did, rsig);
338  _cSignalRMS_depth.fill(did, rsig);
339  _cTimingMean_Subdet.fill(did, mtim);
340  _cTimingMean_depth.fill(did, mtim);
341  _cTimingRMS_Subdet.fill(did, rtim);
342  _cTimingRMS_depth.fill(did, rtim);
343  if (_ptype == fLocal) { // hidefed2crate
344  if (!eid.isVMEid()) {
349  }
350  }
351  }
352 }
353 
354 /* virtual */ void LEDTask::_process(edm::Event const& e, edm::EventSetup const& es) {
358 
359  if (!e.getByToken(_tokHO, c_ho))
360  _logger.dqmthrow("Collection HODigiCollection isn't available " + _tagHO.label() + " " + _tagHO.instance());
361  if (!e.getByToken(_tokQIE10, c_QIE10))
362  _logger.dqmthrow("Collection QIE10DigiCollection isn't available " + _tagQIE10.label() + " " +
363  _tagQIE10.instance());
364  if (!e.getByToken(_tokQIE11, c_QIE11))
365  _logger.dqmthrow("Collection QIE11DigiCollection isn't available " + _tagQIE11.label() + " " +
366  _tagQIE11.instance());
367 
368  // int currentEvent = e.eventAuxiliary().id().event();
369 
370  for (QIE11DigiCollection::const_iterator it = c_QIE11->begin(); it != c_QIE11->end(); ++it) {
371  const QIE11DataFrame digi = static_cast<const QIE11DataFrame>(*it);
372  HcalDetId const& did = digi.detid();
373  if ((did.subdet() != HcalBarrel) && (did.subdet() != HcalEndcap)) {
374  // LED monitoring from calibration channels
375  if (did.subdet() == HcalOther) {
376  HcalOtherDetId hodid(digi.detid());
377  if (hodid.subdet() == HcalCalibration) {
380  for (int i = 0; i < digi.samples(); i++) {
381  if (_ptype == fOnline) {
382  _LED_ADCvsBX_Subdet.fill(HcalDetId(HcalEndcap, 16, 1, 1), e.bunchCrossing(), digi[i].adc());
383  } else if (_ptype == fLocal) {
385  HcalDetId(HcalEndcap, 16, 1, 1), e.eventAuxiliary().id().event(), digi[i].adc());
386  }
387  }
390  did) != _ledCalibrationChannels[HcalBarrel].end()) {
391  for (int i = 0; i < digi.samples(); i++) {
392  if (_ptype == fOnline) {
393  _LED_ADCvsBX_Subdet.fill(HcalDetId(HcalBarrel, 1, 1, 1), e.bunchCrossing(), digi[i].adc());
394  } else if (_ptype == fLocal) {
396  HcalDetId(HcalBarrel, 1, 1, 1), e.eventAuxiliary().id().event(), digi[i].adc());
397  }
398  }
399  }
400  }
401  }
402  continue;
403  }
404  uint32_t rawid = _ehashmap.lookup(did);
405  if (!rawid) {
406  std::string unknown_id_string = "Detid " + std::to_string(int(did)) + ", ieta " + std::to_string(did.ieta());
407  unknown_id_string += ", iphi " + std::to_string(did.iphi()) + ", depth " + std::to_string(did.depth());
408  unknown_id_string += ", is not in emap. Skipping.";
409  _logger.warn(unknown_id_string);
410  continue;
411  }
412  HcalElectronicsId const& eid(rawid);
413 
414  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<QIE11DataFrame>(_dbService, did, digi);
415  //double sumQ = hcaldqm::utilities::sumQ_v10<QIE11DataFrame>(digi, 2.5, 0, digi.samples()-1);
416  double sumQ = hcaldqm::utilities::sumQDB<QIE11DataFrame>(_dbService, digi_fC, did, digi, 0, digi.samples() - 1);
417  if (sumQ >= _lowHBHE) {
418  //double aveTS = hcaldqm::utilities::aveTS_v10<QIE11DataFrame>(digi, 2.5, 0,digi.samples()-1);
419  double aveTS = hcaldqm::utilities::aveTSDB<QIE11DataFrame>(_dbService, digi_fC, did, digi, 0, digi.size() - 1);
420 
421  _xSignalSum.get(did) += sumQ;
422  _xSignalSum2.get(did) += sumQ * sumQ;
423  _xTimingSum.get(did) += aveTS;
424  _xTimingSum2.get(did) += aveTS * aveTS;
425  _xEntries.get(did)++;
426 
427  if (_ptype == fLocal) { // hidefed2crate
428  for (int i = 0; i < digi.samples(); i++) {
429  //_cShapeCut_FEDSlot.fill(eid, i, digi.sample(i).nominal_fC()-2.5);
431  eid, i, hcaldqm::utilities::adc2fCDBMinusPedestal<QIE11DataFrame>(_dbService, digi_fC, did, digi, i));
432  }
433  }
434  if (_ptype == fOnline || _ptype == fLocal) {
435  for (int iTS = 0; iTS < digi.samples(); ++iTS) {
436  _cADCvsTS_SubdetPM.fill(did, iTS, digi[iTS].adc());
437  }
438  }
439  if (_ptype == fOnline) {
440  for (int iTS = 0; iTS < digi.samples(); ++iTS) {
441  if (digi[iTS].tdc() < 50) {
442  double time = iTS * 25. + (digi[iTS].tdc() / 2.);
443  _cTDCTime_SubdetPM.fill(did, time);
444  _cTDCTime_depth.fill(did, time);
445  }
446  }
447  _cSumQ_SubdetPM.fill(did, sumQ);
448 
449  // Low signal in SOI
450  short soi = -1;
451  for (int i = 0; i < digi.samples(); i++) {
452  if (digi[i].soi()) {
453  soi = i;
454  break;
455  }
456  }
457  if (digi[soi].adc() < 30) {
459  }
460  }
461  }
462  }
463  for (HODigiCollection::const_iterator it = c_ho->begin(); it != c_ho->end(); ++it) {
464  const HODataFrame digi = (const HODataFrame)(*it);
465  HcalDetId did = digi.id();
466  if (did.subdet() != HcalOuter) {
467  // LED monitoring from calibration channels
468  if (did.subdet() == HcalOther) {
469  HcalOtherDetId hodid(did);
470  if (hodid.subdet() == HcalCalibration) {
473  for (int i = 0; i < digi.size(); i++) {
474  if (_ptype == fOnline) {
475  _LED_ADCvsBX_Subdet.fill(HcalDetId(HcalOuter, 1, 1, 4), e.bunchCrossing(), digi[i].adc());
476  } else if (_ptype == fLocal) {
478  HcalDetId(HcalOuter, 1, 1, 4), e.eventAuxiliary().id().event(), digi[i].adc());
479  }
480  }
481  }
482  }
483  }
484  }
485  HcalElectronicsId eid = digi.elecId();
486  //double sumQ = hcaldqm::utilities::sumQ<HODataFrame>(digi, 8.5, 0, digi.size()-1);
487  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<HODataFrame>(_dbService, did, digi);
488  double sumQ = hcaldqm::utilities::sumQDB<HODataFrame>(_dbService, digi_fC, did, digi, 0, digi.size() - 1);
489  if (sumQ >= _lowHO) {
490  //double aveTS = hcaldqm::utilities::aveTS<HODataFrame>(digi, 8.5, 0, digi.size()-1);
491  double aveTS = hcaldqm::utilities::aveTSDB<HODataFrame>(_dbService, digi_fC, did, digi, 0, digi.size() - 1);
492 
493  _xSignalSum.get(did) += sumQ;
494  _xSignalSum2.get(did) += sumQ * sumQ;
495  _xTimingSum.get(did) += aveTS;
496  _xTimingSum2.get(did) += aveTS * aveTS;
497  _xEntries.get(did)++;
498 
499  if (_ptype == fLocal) { // hidefed2crate
500  for (int i = 0; i < digi.size(); i++) {
501  //_cShapeCut_FEDSlot.fill(eid, i, digi.sample(i).nominal_fC()-8.5);
503  eid, i, hcaldqm::utilities::adc2fCDBMinusPedestal<HODataFrame>(_dbService, digi_fC, did, digi, i));
504  }
505  }
506  if (_ptype == fOnline || _ptype == fLocal) {
507  for (int iTS = 0; iTS < digi.size(); ++iTS) {
508  _cADCvsTS_SubdetPM.fill(did, iTS, digi.sample(iTS).adc());
509  }
510  }
511  if (_ptype == fOnline) {
512  _cSumQ_SubdetPM.fill(did, sumQ);
513  }
514  }
515  }
516 
517  for (QIE10DigiCollection::const_iterator it = c_QIE10->begin(); it != c_QIE10->end(); ++it) {
518  const QIE10DataFrame digi = static_cast<const QIE10DataFrame>(*it);
519  HcalDetId did = digi.detid();
520  if (did.subdet() != HcalForward) {
521  // LED monitoring from calibration channels
522  if (did.subdet() == HcalOther) {
523  HcalOtherDetId hodid(digi.detid());
524  if (hodid.subdet() == HcalCalibration) {
527  did) != _ledCalibrationChannels[HcalForward].end()) {
528  for (int i = 0; i < digi.samples(); i++) {
529  if (_ptype == fOnline) {
530  _LED_ADCvsBX_Subdet.fill(HcalDetId(HcalForward, 29, 1, 1), e.bunchCrossing(), digi[i].adc());
531  } else if (_ptype == fLocal) {
533  HcalDetId(HcalForward, 29, 1, 1), e.eventAuxiliary().id().event(), digi[i].adc());
534  }
535  }
536  }
537  }
538  }
539  continue;
540  }
542  //double sumQ = hcaldqm::utilities::sumQ_v10<QIE10DataFrame>(digi, 2.5, 0, digi.samples()-1);
543  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<QIE10DataFrame>(_dbService, did, digi);
544  double sumQ = hcaldqm::utilities::sumQDB<QIE10DataFrame>(_dbService, digi_fC, did, digi, 0, digi.samples() - 1);
545  if (sumQ >= _lowHF) {
546  //double aveTS = hcaldqm::utilities::aveTS_v10<QIE10DataFrame>(digi, 2.5, 0, digi.samples()-1);
547  double aveTS = hcaldqm::utilities::aveTSDB<QIE10DataFrame>(_dbService, digi_fC, did, digi, 0, digi.size() - 1);
548 
549  _xSignalSum.get(did) += sumQ;
550  _xSignalSum2.get(did) += sumQ * sumQ;
551  _xTimingSum.get(did) += aveTS;
552  _xTimingSum2.get(did) += aveTS * aveTS;
553  _xEntries.get(did)++;
554 
555  if (_ptype == fLocal) { // hidefed2crate
556  for (int i = 0; i < digi.samples(); ++i) {
557  // Note: this used to be digi.sample(i).nominal_fC() - 2.5, but this branch doesn't exist in QIE10DataFrame.
558  // Instead, use lookup table.
559  //_cShapeCut_FEDSlot.fill(eid, i, constants::adc2fC[digi[i].adc()]);
561  eid, i, hcaldqm::utilities::adc2fCDBMinusPedestal<QIE10DataFrame>(_dbService, digi_fC, did, digi, i));
562  }
563  }
564  if (_ptype == fOnline || _ptype == fLocal) {
565  for (int iTS = 0; iTS < digi.samples(); ++iTS) {
566  _cADCvsTS_SubdetPM.fill(did, iTS, digi[iTS].adc());
567  }
568  }
569  if (_ptype == fOnline) {
570  for (int iTS = 0; iTS < digi.samples(); ++iTS) {
571  if (digi[iTS].le_tdc() < 50) {
572  double time = iTS * 25. + (digi[iTS].le_tdc() / 2.);
573  _cTDCTime_SubdetPM.fill(did, time);
574  _cTDCTime_depth.fill(did, time);
575  }
576  }
577  _cSumQ_SubdetPM.fill(did, sumQ);
578  }
579  }
580  }
581 
583  this->_dump();
584 }
585 
586 /* virtual */ bool LEDTask::_isApplicable(edm::Event const& e) {
587  if (_ptype != fOnline) {
588  // local
590  if (!e.getByToken(_tokTrigger, ctrigger))
591  _logger.dqmthrow("Collection HcalTBTriggerData isn't available " + _tagTrigger.label() + " " +
593  return ctrigger->wasLEDTrigger();
594  } else {
595  // fOnline mode
597  if (!e.getByToken(_tokuMN, cumn)) {
598  return false;
599  }
600 
601  return (cumn->eventType() == constants::EVENTTYPE_LED);
602  }
603 
604  return false;
605 }
606 
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, int debug=0) override
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:115
hcaldqm::Container2D _cMissing_FEDuTCA
Definition: LEDTask.h:95
LEDTask(edm::ParameterSet const &)
Definition: LEDTask.cc:8
hcaldqm::ContainerProf2D _cSignalMean_depth
Definition: LEDTask.h:83
hcaldqm::ContainerProf2D _cTimingMean_FEDuTCA
Definition: LEDTask.h:89
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
constexpr int size() const
total number of samples in the digi
Definition: HODataFrame.h:27
int const CRATE_VME_MIN
Definition: Constants.h:95
double _lowHBHE
Definition: LEDTask.h:62
int ib
Definition: cuy.py:661
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:85
void fill(HcalDetId const &) override
CalibDetType calibFlavor() const
get the flavor of this calibration detid
hcaldqm::Container2D _cMissing_depth
Definition: LEDTask.h:94
edm::EDGetTokenT< HcalTBTriggerData > _tokTrigger
Definition: LEDTask.h:51
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
double _lowHF
Definition: LEDTask.h:64
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
UpdateFreq
Definition: DQTask.h:32
std::vector< T >::const_iterator const_iterator
int bunchCrossing() const
Definition: EventBase.h:64
std::string to_string(const V &value)
Definition: OMSAccess.h:71
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
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
edm::InputTag _tagHO
Definition: LEDTask.h:44
EventAuxiliary const & eventAuxiliary() const override
Definition: Event.h:95
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:125
int ieta() const
hcaldqm::filter::HashFilter _filter_uTCA
Definition: LEDTask.h:57
edm::InputTag _tagQIE11
Definition: LEDTask.h:43
edm::EDGetTokenT< QIE11DigiCollection > _tokQIE11
Definition: LEDTask.h:48
edm::ESGetToken< HcalDbService, HcalDbRecord > hcalDbServiceToken_
Definition: LEDTask.h:53
hcaldqm::ContainerXXX< int > _xEntries
Definition: LEDTask.h:69
int _nevents
Definition: LEDTask.h:61
int const FIBERCH_MIN
Definition: Constants.h:134
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
example_stream void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
edm::EDGetTokenT< QIE10DigiCollection > _tokQIE10
Definition: LEDTask.h:50
hcaldqm::ContainerXXX< double > _xTimingSum
Definition: LEDTask.h:70
hcaldqm::ContainerProf2D _cTDCTime_depth
Definition: LEDTask.h:101
edm::EDGetTokenT< HcalUMNioDigi > _tokuMN
Definition: LEDTask.h:52
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::ContainerProf2D _cSignalRMS_FEDuTCA
Definition: LEDTask.h:90
ProcessingType _ptype
Definition: DQModule.h:44
virtual void fill(uint32_t)
Definition: Container1D.cc:73
virtual void reset()
Definition: Container1D.cc:60
uint8_t const EVENTTYPE_LED
Definition: Constants.h:294
double _lowHO
Definition: LEDTask.h:63
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
void dqmthrow(std::string const &msg) const
Definition: Logger.h:12
T sqrt(T t)
Definition: SSEVec.h:19
HcalSubdetector
Definition: HcalAssistant.h:31
int const FIBER_uTCA_MIN1
Definition: Constants.h:128
Transition
Definition: Transition.h:12
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
hcaldqm::ContainerSingle2D _cLowSignal_CrateSlot
Definition: LEDTask.h:102
constexpr HcalElectronicsId const & elecId() const
Definition: HODataFrame.h:24
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: LEDTask.cc:29
std::vector< HcalGenericDetId > allPrecisionId() const
Logger _logger
Definition: DQModule.h:55
edm::InputTag _tagTrigger
Definition: LEDTask.h:46
std::string _name
Definition: DQModule.h:42
HcalElectronicsMap const * _emap
Definition: DQTask.h:81
hcaldqm::ContainerProf2D _cSignalMean_FEDuTCA
Definition: LEDTask.h:88
hcaldqm::ContainerProf2D _cTimingRMS_depth
Definition: LEDTask.h:86
hcaldqm::Container1D _cSignalRMS_Subdet
Definition: LEDTask.h:75
hcaldqm::filter::HashFilter _filter_VME
Definition: LEDTask.h:58
int const CRATE_uTCA_MIN
Definition: Constants.h:100
hcaldqm::Container2D _LED_ADCvsEvn_Subdet
Definition: LEDTask.h:107
int iphi() const
get the low-edge iphi (if relevant)
Definition: DetId.h:17
int const CALIBEVENTS_MIN
Definition: Constants.h:246
hcaldqm::ContainerXXX< double > _xTimingSum2
Definition: LEDTask.h:71
hcaldqm::Container1D _cTDCTime_SubdetPM
Definition: LEDTask.h:100
hcaldqm::ContainerProf2D _cTimingRMS_FEDuTCA
Definition: LEDTask.h:91
constexpr int samples() const
total number of samples in the digi
edm::EDGetTokenT< HODigiCollection > _tokHO
Definition: LEDTask.h:49
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:87
hcaldqm::ContainerXXX< double > _xSignalSum
Definition: LEDTask.h:67
std::vector< HcalElectronicsId > allElectronicsId() const
HcalOtherSubdetector subdet() const
get the category
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
void _process(edm::Event const &, edm::EventSetup const &) override
Definition: LEDTask.cc:354
hcaldqm::Container1D _cTimingMean_Subdet
Definition: LEDTask.h:76
std::map< HcalSubdetector, std::vector< HcalDetId > > _ledCalibrationChannels
Definition: LEDTask.h:105
constexpr int samples() const
total number of samples in the digi
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:295
std::string const & label() const
Definition: InputTag.h:36
hcaldqm::ContainerProf2D _cSignalRMS_depth
Definition: LEDTask.h:84
int cboxChannel() const
get the calibration box channel (if relevant)
EventID const & id() const
bool _isApplicable(edm::Event const &) override
Definition: LEDTask.cc:586
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:197
edm::ESHandle< HcalDbService > _dbService
Definition: DQTask.h:80
hcaldqm::Container1D _cTimingRMS_Subdet
Definition: LEDTask.h:77
string end
Definition: dataset.py:937
void fill(HcalDetId const &) override
Definition: Container2D.cc:52
virtual void _dump()
Definition: LEDTask.cc:297
virtual void initialize(FilterType ftype, hashfunctions::HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:17
std::string _subsystem
Definition: DQModule.h:49
hcaldqm::ContainerXXX< double > _xSignalSum2
Definition: LEDTask.h:68
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: LEDTask.h:56
hcaldqm::Container2D _LED_ADCvsBX_Subdet
Definition: LEDTask.h:106
HcalSubdetector hcalSubdet() const
get the HcalSubdetector (if relevant)
hcaldqm::Container1D _cSumQ_SubdetPM
Definition: LEDTask.h:99
hcaldqm::ContainerProf1D _cShapeCut_FEDSlot
Definition: LEDTask.h:80
edm::InputTag _tagQIE10
Definition: LEDTask.h:45
constexpr int depth() const
get the tower depth
Definition: HcalDetId.h:164
virtual void fill(int, int)
virtual void initialize(hashfunctions::HashType, int debug=0)
Definition: ContainerXXX.h:81
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: Container2D.cc:567
constexpr HcalDetId const & id() const
Definition: HODataFrame.h:23
hcaldqm::Container2D _cADCvsTS_SubdetPM
Definition: LEDTask.h:98
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
const DetId lookup(HcalElectronicsId fId) const
lookup the logical detid associated with the given electronics id
RunNumber_t run() const
Definition: RunAuxiliary.h:31
int const SLOT_uTCA_MIN
Definition: Constants.h:107
Definition: Run.h:45
uint16_t *__restrict__ uint16_t const *__restrict__ adc
constexpr DetId detid() const
Get the detector id.
double sumQ(DIGI const &digi, double ped, int i=0, int j=3)
Definition: Utilities.h:127
hcaldqm::Container1D _cSignalMean_Subdet
Definition: LEDTask.h:74