CMS 3D CMS Logo

DigiPhase1Task.cc
Go to the documentation of this file.
2 
3 using namespace hcaldqm;
4 using namespace hcaldqm::constants;
5 using namespace hcaldqm::filter;
6 
8  DQTask(ps)
9 {
11  edm::InputTag("hcalDigis"));
13  edm::InputTag("hcalDigis"));
15  edm::InputTag("hcalDigis"));
16 
17  _tokHBHE = consumes<QIE11DigiCollection>(_tagHBHE);
18  _tokHO = consumes<HODigiCollection>(_tagHO);
19  _tokHF = consumes<QIE10DigiCollection>(_tagHF);
20 
21  _cutSumQ_HBHE = ps.getUntrackedParameter<double>("cutSumQ_HBHE", 20);
22  _cutSumQ_HO = ps.getUntrackedParameter<double>("cutSumQ_HO", 20);
23  _cutSumQ_HF = ps.getUntrackedParameter<double>("cutSumQ_HF", 20);
24  _thresh_unihf = ps.getUntrackedParameter<double>("thresh_unihf", 0.2);
25 
26  _vflags.resize(nDigiFlag);
27  _vflags[fUni]=hcaldqm::flag::Flag("UniSlotHF");
31 }
32 
34  edm::Run const& r, edm::EventSetup const& es)
35 {
36  DQTask::bookHistograms(ib,r,es);
37 
38  // GET WHAT YOU NEED
40  es.get<HcalDbRecord>().get(dbs);
41  _emap = dbs->getHcalMapping();
42  std::vector<uint32_t> vVME;
43  std::vector<uint32_t> vuTCA;
47  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
49  vVME);
51  vuTCA);
52 
53  // INITIALIZE FIRST
75  _cTimingCut_depth.initialize(_name, "TimingCut",
80 
81  // Occupancy w/o a cut
82  _cOccupancyvsLS_Subdet.initialize(_name, "OccupancyvsLS",
86  _cOccupancy_depth.initialize(_name, "Occupancy",
91 
92  // Occupancy w/ a cut
93  _cOccupancyCutvsLS_Subdet.initialize(_name, "OccupancyCutvsLS",
97  _cOccupancyCut_depth.initialize(_name, "OccupancyCut",
102 
103  if (_ptype != fOffline) { // hidefed2crate
104  std::vector<int> vFEDs = hcaldqm::utilities::getFEDList(_emap);
105  std::vector<int> vFEDsVME = hcaldqm::utilities::getFEDVMEList(_emap);
106  std::vector<int> vFEDsuTCA = hcaldqm::utilities::getFEDuTCAList(_emap);
107 
108  std::vector<uint32_t> vFEDHF;
109  vFEDHF.push_back(HcalElectronicsId(22, SLOT_uTCA_MIN,
110  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
111  vFEDHF.push_back(HcalElectronicsId(29, SLOT_uTCA_MIN,
112  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
113  vFEDHF.push_back(HcalElectronicsId(32, SLOT_uTCA_MIN,
114  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
115  // initialize filters
117  vFEDHF);
118 
119  // push the rawIds of each fed into the vector...
120  for (std::vector<int>::const_iterator it=vFEDsVME.begin(); it!=vFEDsVME.end(); ++it) {
121  _vhashFEDs.push_back(HcalElectronicsId(
123  (*it)-FED_VME_MIN).rawId());
124  }
125  for (std::vector<int>::const_iterator it=vFEDsuTCA.begin();
126  it!=vFEDsuTCA.end(); ++it)
127  {
128  std::pair<uint16_t, uint16_t> cspair = hcaldqm::utilities::fed2crate(*it);
129  _vhashFEDs.push_back(HcalElectronicsId(
130  cspair.first, cspair.second, FIBER_uTCA_MIN1,
131  FIBERCH_MIN, false).rawId());
132  }
133 
138 
139  _cTimingCut_FEDVME.initialize(_name, "TimingCut",
144  _cTimingCut_FEDuTCA.initialize(_name, "TimingCut",
151  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
156  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
159  _cTimingCutvsLS_FED.initialize(_name, "TimingvsLS",
163 
164  _cOccupancy_FEDVME.initialize(_name, "Occupancy",
169  _cOccupancy_FEDuTCA.initialize(_name, "Occupancy",
176  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
181  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
184 
185  _cOccupancyCut_FEDVME.initialize(_name, "OccupancyCut",
190  _cOccupancyCut_FEDuTCA.initialize(_name, "OccupancyCut",
197  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
202  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
205 
206  _cDigiSize_FED.initialize(_name, "DigiSize",
210 
211  }
212 
213 
214  // BOOK HISTOGRAMS
215  char cutstr[200];
216  sprintf(cutstr, "_SumQHBHE%dHO%dHF%d", int(_cutSumQ_HBHE),
217  int(_cutSumQ_HO), int(_cutSumQ_HF));
218  char cutstr2[200];
219  sprintf(cutstr2, "_SumQHF%d", int(_cutSumQ_HF));
220 
222 
227 
228 
231 
235 
236  if (_ptype != fOffline) { // hidefed2crate
252  }
253 
254  // BOOK HISTOGRAMS that are only for Online
257 
258  // MARK THESE HISTOGRAMS AS LUMI BASED FOR OFFLINE PROCESSING
259  if (_ptype==fOffline)
260  {
261  //_cDigiSize_FED.setLumiFlag(); // hidefed2crate : FED stuff not available offline anymore, so this histogram doesn't make sense?
263  }
264 
265  // book Number of Events vs LS histogram
266  ib.setCurrentFolder(_subsystem+"/RunInfo");
267  meNumEvents1LS = ib.book1D("NumberOfEvents", "NumberOfEvents",
268  1, 0, 1);
270 
271  // book the flag for unknown ids and the online guy as well
273  meUnknownIds1LS = ib.book1D("UnknownIds", "UnknownIds",
274  1, 0, 1);
275  _unknownIdsPresent = false;
277 }
278 
280 {
281  DQTask::_resetMonitors(uf);
282 
283  switch(uf)
284  {
285  case hcaldqm::f1LS:
286  _unknownIdsPresent = false;
287  break;
288  case hcaldqm::f50LS:
289  break;
290  default:
291  break;
292  }
293 }
294 
295 /* virtual */ void DigiPhase1Task::_process(edm::Event const& e,
296  edm::EventSetup const&)
297 {
301 
302  if (!e.getByToken(_tokHBHE, chbhe))
303  _logger.dqmthrow("Collection HBHEDigiCollection isn't available"
304  + _tagHBHE.label() + " " + _tagHBHE.instance());
305  if (!e.getByToken(_tokHO, cho))
306  _logger.dqmthrow("Collection HODigiCollection isn't available"
307  + _tagHO.label() + " " + _tagHO.instance());
308  if (!e.getByToken(_tokHF, chf))
309  _logger.dqmthrow("Collection HF QIE10Collection isn't available"
310  + _tagHF.label() + " " + _tagHF.instance());
311 
312  // extract some info per event
313  meNumEvents1LS->Fill(0.5); // just increment
314 
315  // To fill histograms outside of the loop, you need to determine if there were
316  // any valid det ids first
317  uint32_t rawidValid = 0;
318  uint32_t rawidHBValid = 0;
319  uint32_t rawidHEValid = 0;
320 
321  // HB collection
322  int numChs = 0;
323  int numChsCut = 0;
324  int numChsHE = 0;
325  int numChsCutHE = 0;
326  for (QIE11DigiCollection::const_iterator it=chbhe->begin(); it!=chbhe->end(); ++it) {
327  QIE11DataFrame const& frame = *it;
328  double sumQ = hcaldqm::utilities::sumQ_v10<QIE11DataFrame>(frame, 2.5, 0, frame.samples()-1);
329 
330  // Explicit check on the DetIds present in the Collection
331  HcalDetId const& did = frame.detid();
332  uint32_t rawid = _ehashmap.lookup(did);
333  if (rawid==0)
334  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
335  HcalElectronicsId const& eid(rawid);
336  if (did.subdet()==HcalBarrel)
337  rawidHBValid = did.rawId();
338  else if (did.subdet()==HcalEndcap)
339  rawidHEValid = did.rawId();
340 
341  // filter out channels that are masked out
342  if (_xQuality.exists(did))
343  {
344  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
345  if (
348  continue;
349  }
350 
351  _cSumQ_SubdetPM.fill(did, sumQ);
352  _cOccupancy_depth.fill(did);
353 
354  if (_ptype != fOffline) { // hidefed2crate
355  _cDigiSize_FED.fill(eid, frame.samples());
356  }
357  if (eid.isVMEid())
358  {
359  if (_ptype != fOffline) { // hidefed2crate
362  }
363  }
364  else
365  {
366  if (_ptype != fOffline) { // hidefed2crate
369  }
370  /*
371  if (!it->validate(0, it->size()))
372  {
373  _cCapIdRots_depth.fill(did);
374  _cCapIdRots_FEDuTCA.fill(eid, 1);
375  }*/
376  }
377 
378  for (int i=0; i<frame.samples(); i++)
379  {
380  _cADC_SubdetPM.fill(did, frame[i].adc());
381  _cfC_SubdetPM.fill(did,constants::adc2fC[frame[i].adc()]);
382  if (_ptype != fOffline) { // hidefed2crate
383  if (sumQ>_cutSumQ_HBHE)
384  _cShapeCut_FED.fill(eid, i, constants::adc2fC[frame[i].adc()]);
385  }
386  }
387 
388  if (sumQ>_cutSumQ_HBHE)
389  {
390  double timing = hcaldqm::utilities::aveTS_v10<QIE11DataFrame>(frame, 2.5, 0, frame.samples()-1);
391  _cTimingCut_SubdetPM.fill(did, timing);
392  _cTimingCut_depth.fill(did, timing);
394  if (_ptype != fOffline) { // hidefed2crate
395  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
396  }
397  _cSumQ_depth.fill(did, sumQ);
398  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
399 
400  if (eid.isVMEid())
401  {
402  if (_ptype != fOffline) { // hidefed2crate
403  _cTimingCut_FEDVME.fill(eid, timing);
405  _cTimingCut_ElectronicsVME.fill(eid, timing);
407  }
408  }
409  else
410  {
411  if (_ptype != fOffline) { // hidefed2crate
412  _cTimingCut_FEDuTCA.fill(eid, timing);
414  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
416  }
417  }
418  did.subdet()==HcalBarrel?numChsCut++:numChsCutHE++;
419  }
420  did.subdet()==HcalBarrel?numChs++:numChsHE++;
421  }
422 
423  if (rawidHBValid!=0 && rawidHEValid!=0)
424  {
426  numChs);
428  numChsHE);
429 
430  }
431  numChs=0;
432  numChsCut = 0;
433 
434  // reset
435  rawidValid = 0;
436 
437  // HO collection
438  for (HODigiCollection::const_iterator it=cho->begin(); it!=cho->end();
439  ++it)
440  {
441  double sumQ = hcaldqm::utilities::sumQ<HODataFrame>(*it, 8.5, 0, it->size()-1);
442 
443  // Explicit check on the DetIds present in the Collection
444  HcalDetId const& did = it->id();
445  uint32_t rawid = _ehashmap.lookup(did);
446  if (rawid==0)
447  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
448  HcalElectronicsId const& eid(rawid);
449  if (did.subdet()==HcalOuter)
450  rawidValid = did.rawId();
451 
452  // filter out channels that are masked out
453  if (_xQuality.exists(did))
454  {
455  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
456  if (
459  continue;
460  }
461 
462  _cSumQ_SubdetPM.fill(did, sumQ);
463  _cOccupancy_depth.fill(did);
464  if (_ptype != fOffline) { // hidefed2crate
465  _cDigiSize_FED.fill(eid, it->size());
466  }
467  if (eid.isVMEid())
468  {
469  if (_ptype != fOffline) { // hidefed2crate
472  }
473  /*
474  if (!it->validate(0, it->size()))
475  _cCapIdRots_FEDVME.fill(eid, 1);
476  */
477  }
478  else
479  {
480  if (_ptype != fOffline) { // hidefed2crate
483  }
484  /*
485  if (!it->validate(0, it->size()))
486  _cCapIdRots_FEDuTCA.fill(eid, 1);*/
487  }
488 
489  for (int i=0; i<it->size(); i++)
490  {
491  _cADC_SubdetPM.fill(did, it->sample(i).adc());
492  _cfC_SubdetPM.fill(did, it->sample(i).nominal_fC());
493  if (_ptype != fOffline) { // hidefed2crate
494  if (sumQ>_cutSumQ_HO)
495  _cShapeCut_FED.fill(eid, i, it->sample(i).nominal_fC());
496  }
497  }
498 
499  if (sumQ>_cutSumQ_HO)
500  {
501  double timing = hcaldqm::utilities::aveTS<HODataFrame>(*it, 8.5, 0,
502  it->size()-1);
503  _cSumQ_depth.fill(did, sumQ);
504  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
506  _cTimingCut_SubdetPM.fill(did, timing);
507  _cTimingCut_depth.fill(did, timing);
508  if (_ptype != fOffline) { // hidefed2crate
509  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
510  }
511 
512  if (eid.isVMEid())
513  {
514  if (_ptype != fOffline) { // hidefed2crate
515  _cTimingCut_FEDVME.fill(eid, timing);
517  _cTimingCut_ElectronicsVME.fill(eid, timing);
519  }
520  }
521  else
522  {
523  if (_ptype != fOffline) { // hidefed2crate
524  _cTimingCut_FEDuTCA.fill(eid, timing);
526  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
528  }
529  }
530  numChsCut++;
531  }
532  numChs++;
533  }
534 
535  if (rawidValid!=0)
536  {
538  numChs);
539  }
540  numChs=0; numChsCut=0;
541 
542  // reset
543  rawidValid = 0;
544 
545  // HF collection
546  for (QIE10DigiCollection::const_iterator it=chf->begin(); it!=chf->end();
547  ++it)
548  {
549  QIE10DataFrame frame = *it;
550  double sumQ = hcaldqm::utilities::sumQ_v10<QIE10DataFrame>(frame,
551  2.5, 0, frame.samples()-1);
552 
553  // Explicit check on the DetIds present in the Collection
554  HcalDetId const& did = it->id();
555  uint32_t rawid = _ehashmap.lookup(did);
556  if (rawid==0)
557  {meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
558  HcalElectronicsId const& eid(rawid);
559  if (did.subdet()==HcalForward)
560  rawidValid = did.rawId();
561 
562  // filter out channels that are masked out
563  if (_xQuality.exists(did))
564  {
565  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
566  if (
569  continue;
570  }
571 
572  _cSumQ_SubdetPM.fill(did, sumQ);
573  _cOccupancy_depth.fill(did);
574  if (_ptype != fOffline) { // hidefed2crate
575  _cDigiSize_FED.fill(eid, frame.samples());
576  }
577  if (eid.isVMEid())
578  {
579  if (_ptype != fOffline) { // hidefed2crate
582  }
583  /*
584  if (!it->validate(0, it->size()))
585  _cCapIdRots_FEDVME.fill(eid, 1);*/
586  }
587  else
588  {
589  if (_ptype != fOffline) { // hidefed2crate
592  }
593  /*
594  if (!it->validate(0, it->size()))
595  _cCapIdRots_FEDuTCA.fill(eid, 1);*/
596  }
597 
598  for (int i=0; i<frame.samples(); i++)
599  {
600  _cADC_SubdetPM.fill(did, frame[i].adc());
601  _cfC_SubdetPM.fill(did, constants::adc2fC[frame[i].adc()]);
602  if (_ptype != fOffline) { // hidefed2crate
603  if (sumQ>_cutSumQ_HF)
604  _cShapeCut_FED.fill(eid, i, constants::adc2fC[frame[i].adc()]);
605  }
606  }
607 
608  if (sumQ>_cutSumQ_HF)
609  {
610  double timing = hcaldqm::utilities::aveTS_v10<QIE10DataFrame>(frame, 2.5, 0,
611  frame.samples()-1);
612 
613  _cSumQ_depth.fill(did, sumQ);
614  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
615 
616  _cTimingCut_SubdetPM.fill(did, timing);
617  _cTimingCut_depth.fill(did, timing);
618  if (_ptype != fOffline) { // hidefed2crate
619  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
620  }
622  if (eid.isVMEid())
623  {
624  if (_ptype != fOffline) { // hidefed2crate
625  _cTimingCut_FEDVME.fill(eid, timing);
627  _cTimingCut_ElectronicsVME.fill(eid, timing);
629  }
630  }
631  else
632  {
633  if (_ptype != fOffline) { // hidefed2crate
634  _cTimingCut_FEDuTCA.fill(eid, timing);
636  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
638  }
639  }
640  numChsCut++;
641  }
642  numChs++;
643  }
644 
645  if (rawidValid!=0)
646  {
648  numChs);
649 
650  }
651 }
652 
654  edm::LuminosityBlock const& lb, edm::EventSetup const& es)
655 {
656  DQTask::beginLuminosityBlock(lb, es);
657 }
658 
660  edm::EventSetup const& es)
661 {
662  DQTask::endLuminosityBlock(lb, es);
663 }
664 
666 
int adc(sample_type sample)
get the ADC sample (12 bits)
int samples() const
total number of samples in the digi
hcaldqm::ContainerProf2D _cTimingCut_FEDVME
T getUntrackedParameter(std::string const &, T const &) const
hcaldqm::Container1D _cADC_SubdetPM
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *qy=new ValueQuantity(quantity::fN), int debug=0)
Definition: Container1D.cc:40
auto_ptr< ClusterSequence > cs
virtual bool exists(HcalDetId const &)
Definition: ContainerXXX.h:267
hcaldqm::ContainerProf2D _cSumQ_depth
int const CRATE_VME_MIN
Definition: Constants.h:111
edm::InputTag _tagHF
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
hcaldqm::ContainerProf1D _cTimingCutvsLS_FED
void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
std::pair< uint16_t, uint16_t > fed2crate(int fed)
Definition: Utilities.cc:12
uint32_t rawId() const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
DigiPhase1Task(edm::ParameterSet const &)
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
hcaldqm::ContainerProf1D _cOccupancyCutvsLS_Subdet
edm::EDGetTokenT< HODigiCollection > _tokHO
UpdateFreq
Definition: DQTask.h:17
std::vector< HODataFrame >::const_iterator const_iterator
int const SPIGOT_MIN
Definition: Constants.h:136
hcaldqm::Container1D _cTimingCut_SubdetPM
MonitorElement * meNumEvents1LS
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
const_iterator begin() const
hcaldqm::Container2D _cOccupancyCut_depth
std::vector< uint32_t > _vhashFEDs
int const FIBER_VME_MIN
Definition: Constants.h:141
void _process(edm::Event const &, edm::EventSetup const &) override
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsVME
void bookHistograms(fwlite::EventContainer &eventCont)
std::vector< hcaldqm::flag::Flag > _vflags
int const FIBERCH_MIN
Definition: Constants.h:151
hcaldqm::Container1D _cShapeCut_FED
void Fill(long long x)
std::vector< int > getFEDVMEList(HcalElectronicsMap const *)
Definition: Utilities.cc:119
hcaldqm::filter::HashFilter _filter_VME
double _cutSumQ_HBHE
MonitorElement * meUnknownIds1LS
hcaldqm::ContainerProf2D _cTimingCut_depth
ProcessingType _ptype
Definition: DQModule.h:59
virtual void fill(uint32_t)
Definition: Container1D.cc:82
hcaldqm::electronicsmap::ElectronicsMap _dhashmap
void setLumiFlag()
this ME is meant to be stored for each luminosity section
void dqmthrow(std::string const &msg) const
Definition: Logger.h:15
ContainerXXX< uint32_t > _xQuality
Definition: DQTask.h:62
int const FED_VME_MIN
Definition: Constants.h:98
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsuTCA
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fN), int debug=0)
Definition: Container2D.cc:32
int const FIBER_uTCA_MIN1
Definition: Constants.h:144
Logger _logger
Definition: DQModule.h:70
hcaldqm::Container2D _cOccupancyCut_FEDVME
hcaldqm::filter::HashFilter _filter_uTCA
std::string _name
Definition: DQModule.h:57
HcalElectronicsMap const * _emap
Definition: DQTask.h:73
void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fEnergy), int debug=0) override
int const CRATE_uTCA_MIN
Definition: Constants.h:116
const_iterator end() const
double const adc2fC[256]
Definition: Constants.h:272
bool isVMEid() const
hcaldqm::Container1D _cDigiSize_FED
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:279
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
edm::EDGetTokenT< QIE10DigiCollection > _tokHF
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container1D.cc:957
hcaldqm::ContainerProf2D _cTimingCut_FEDuTCA
const T & get() const
Definition: EventSetup.h:58
double _thresh_unihf
edm::InputTag _tagHO
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, int debug=0) override
hcaldqm::Container2D _cOccupancy_FEDVME
hcaldqm::Container2D _cOccupancy_ElectronicsVME
hcaldqm::ContainerProf1D _cSumQvsLS_SubdetPM
std::string const & label() const
Definition: InputTag.h:36
const_iterator end() const
hcaldqm::Container2D _cOccupancy_ElectronicsuTCA
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:249
virtual void setLumiFlag()
hcaldqm::Container2D _cOccupancyCut_FEDuTCA
std::vector< int > getFEDList(HcalElectronicsMap const *)
Definition: Utilities.cc:95
edm::InputTag _tagHBHE
hcaldqm::Container2D _cOccupancyCut_ElectronicsuTCA
std::vector< int > getFEDuTCAList(HcalElectronicsMap const *)
Definition: Utilities.cc:145
void fill(HcalDetId const &) override
Definition: Container2D.cc:59
const HcalElectronicsMap * getHcalMapping() const
void _resetMonitors(hcaldqm::UpdateFreq) override
std::string _subsystem
Definition: DQModule.h:64
hcaldqm::Container1D _cSumQ_SubdetPM
hcaldqm::filter::HashFilter _filter_FEDHF
virtual void initialize(FilterType ftype, HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:26
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: Container2D.cc:895
hcaldqm::Container2D _cOccupancyCut_ElectronicsVME
int samples() const
total number of samples in the digi
hcaldqm::Container2D _cOccupancy_depth
Readout chain identification for Hcal.
std::string const & instance() const
Definition: InputTag.h:37
hcaldqm::Container1D _cfC_SubdetPM
edm::EDGetTokenT< QIE11DigiCollection > _tokHBHE
int const SLOT_uTCA_MIN
Definition: Constants.h:123
const_iterator begin() const
Definition: Run.h:43
ib
Definition: cuy.py:660
double sumQ(DIGI const &digi, double ped, int i=0, int j=3)
Definition: Utilities.h:122
hcaldqm::ContainerProf1D _cOccupancyvsLS_Subdet
hcaldqm::Container2D _cOccupancy_FEDuTCA