CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
28  edm::Run const& r, edm::EventSetup const& es)
29 {
30  DQTask::bookHistograms(ib,r,es);
31 
32  // GET WHAT YOU NEED
34  es.get<HcalDbRecord>().get(dbs);
35  _emap = dbs->getHcalMapping();
36  std::vector<int> vFEDs = hcaldqm::utilities::getFEDList(_emap);
37  std::vector<int> vFEDsVME = hcaldqm::utilities::getFEDVMEList(_emap);
38  std::vector<int> vFEDsuTCA = hcaldqm::utilities::getFEDuTCAList(_emap);
39  std::vector<uint32_t> vVME;
40  std::vector<uint32_t> vuTCA;
44  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
46  vVME);
48  vuTCA);
49 
50  // push the rawIds of each fed into the vector...
51  for (std::vector<int>::const_iterator it=vFEDsVME.begin();
52  it!=vFEDsVME.end(); ++it)
53  _vhashFEDs.push_back(HcalElectronicsId(
55  (*it)-FED_VME_MIN).rawId());
56  for (std::vector<int>::const_iterator it=vFEDsuTCA.begin();
57  it!=vFEDsuTCA.end(); ++it)
58  {
59  std::pair<uint16_t, uint16_t> cspair = hcaldqm::utilities::fed2crate(*it);
60  _vhashFEDs.push_back(HcalElectronicsId(
61  cspair.first, cspair.second, FIBER_uTCA_MIN1,
62  FIBERCH_MIN, false).rawId());
63  }
64 
65  // INITIALIZE FIRST
91  _cTimingCut_FEDVME.initialize(_name, "TimingCut",
103  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
108  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
111  _cTimingCutvsLS_FED.initialize(_name, "TimingvsLS",
115  _cTimingCut_depth.initialize(_name, "TimingCut",
120 
121  // Occupancy w/o a cut
122  _cOccupancy_FEDVME.initialize(_name, "Occupancy",
127  _cOccupancy_FEDuTCA.initialize(_name, "Occupancy",
134  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
139  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
142  _cOccupancyvsLS_Subdet.initialize(_name, "OccupancyvsLS",
146  _cOccupancy_depth.initialize(_name, "Occupancy",
151 
152  // Occupancy w/ a cut
153  _cOccupancyCut_FEDVME.initialize(_name, "OccupancyCut",
158  _cOccupancyCut_FEDuTCA.initialize(_name, "OccupancyCut",
165  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
170  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
173  _cOccupancyCutvsLS_Subdet.initialize(_name, "OccupancyCutvsLS",
177  _cOccupancyCut_depth.initialize(_name, "OccupancyCut",
182 
183  _cDigiSize_FED.initialize(_name, "DigiSize",
187 
188  // INITIALIZE HISTOGRAMS that are only for Online
189  if (_ptype==fOnline)
190  {
195  _cDigiSizevsLS_FED.initialize(_name, "DigiSizevsLS",
199  _cTimingCutvsiphi_SubdetPM.initialize(_name, "TimingCutvsiphi",
203  _cTimingCutvsieta_Subdet.initialize(_name, "TimingCutvsieta",
207  _cOccupancyvsiphi_SubdetPM.initialize(_name, "Occupancyvsiphi",
211  _cOccupancyvsieta_Subdet.initialize(_name, "Occupancyvsieta",
215  _cOccupancyCutvsiphi_SubdetPM.initialize(_name, "OccupancyCutvsiphi",
219  _cOccupancyCutvsieta_Subdet.initialize(_name, "OccupancyCutvsieta",
223  _cOccupancyCutvsLS_Subdet.initialize(_name, "OccupancyCutvsLS",
227  _cOccupancyCutvsBX_Subdet.initialize(_name, "OccupancyCutvsBX",
231 // _cOccupancyCutvsSlotvsLS_HFPM.initialize(_name,
232 // "OccupancyCutvsSlotvsLS", hcaldqm::hashfunctions::fSubdetPM,
233 // new hcaldqm::quantity::LumiSection(_maxLS),
234 // new hcaldqm::quantity::ElectronicsQuantity(hcaldqm::quantity::fSlotuTCA),
235 // new hcaldqm::quantity::ValueQuantity(hcaldqm::quantity::fN));
237  "OccupancyCutvsiphivsLS", hcaldqm::hashfunctions::fSubdetPM,
241 
246  }
247 
248  // BOOK HISTOGRAMS
249  char cutstr[200];
250  sprintf(cutstr, "_SumQHBHE%dHO%dHF%d", int(_cutSumQ_HBHE),
251  int(_cutSumQ_HO), int(_cutSumQ_HF));
252  char cutstr2[200];
253  sprintf(cutstr2, "_SumQHF%d", int(_cutSumQ_HF));
254 
256 
261 
263 
271 
283 
285 
286  // BOOK HISTOGRAMS that are only for Online
288  if (_ptype==fOnline)
289  {
301 
302  _xNChs.book(_emap);
304  _xUni.book(_emap);
306 
307  // just PER HF FED RECORD THE #CHANNELS
308  // ONLY WAY TO DO THAT AUTOMATICALLY AND W/O HARDCODING 1728
309  // or ANY OTHER VALUES LIKE 2592, 2192
310  std::vector<HcalGenericDetId> gids = _emap->allPrecisionId();
311  for (std::vector<HcalGenericDetId>::const_iterator it=gids.begin();
312  it!=gids.end(); ++it)
313  {
314  if (!it->isHcalDetId())
315  continue;
316  HcalDetId did(it->rawId());
317  if (_xQuality.exists(did))
318  {
319  HcalChannelStatus cs(it->rawId(), _xQuality.get(
320  HcalDetId(*it)));
321  if (
324  continue;
325  }
327  _xNChsNominal.get(eid)++; // he will know the nominal #channels per FED
328  }
329  }
330 
331  // MARK THESE HISTOGRAMS AS LUMI BASED FOR OFFLINE PROCESSING
332  if (_ptype==fOffline)
333  {
336  }
337 
338  ib.setCurrentFolder(_subsystem+"/RunInfo");
339  meNumEvents1LS = ib.book1D("NumberOfEvents", "NumberOfEvents",
340  1, 0, 1);
342 }
343 
345 {
346  DQTask::_resetMonitors(uf);
347 
348  switch(uf)
349  {
350  case hcaldqm::f50LS:
351  // ^^^ONLINE ONLY!
352  if (_ptype==fOnline)
354  // ^^^
355  break;
356  default:
357  break;
358  }
359 }
360 
361 /* virtual */ void DigiPhase1Task::_process(edm::Event const& e,
362  edm::EventSetup const&)
363 {
367 
368  if (!e.getByToken(_tokHBHE, chbhe))
369  _logger.dqmthrow("Collection HBHE QIE11DigiCollection isn't available"
370  + _tagHBHE.label() + " " + _tagHBHE.instance());
371  if (!e.getByToken(_tokHO, cho))
372  _logger.dqmthrow("Collection HODigiPhase1Collection isn't available"
373  + _tagHO.label() + " " + _tagHO.instance());
374  if (!e.getByToken(_tokHF, chf))
375  _logger.dqmthrow("Collection HF QIE10Collection isn't available"
376  + _tagHF.label() + " " + _tagHF.instance());
377 
378  // extract some info per event
379  int bx = e.bunchCrossing();
380  meNumEvents1LS->Fill(0.5); // just increment
381 
382  // HB collection
383  int numChs = 0;
384  int numChsCut = 0;
385  int numChsHE = 0;
386  int numChsCutHE = 0;
387 
388  /*
389  * Suggested Reading for CMSSW & Boost interaction of iterators for
390  * DataFrameContainer, etc....
391  *
392  * http://www.boost.org/doc/libs/1_53_0/libs/iterator/doc/transform_iterator.html
393  * http://www.boost.org/doc/libs/1_50_0/libs/iterator/doc/counting_iterator.html
394  * helps to understand how to unwrap the boost iterator classes...
395  */
396  for (QIE11DigiCollection::const_iterator it=chbhe->begin(); it!=chbhe->end();
397  ++it)
398  {
399  QIE11DataFrame const& frame = *it;
400  double sumQ = hcaldqm::utilities::sumQ_v10<QIE11DataFrame>(frame,
401  2.5, 0, frame.samples()-1);
402  HcalDetId const& did = frame.detid();
403  // filter out channels that are masked out
404  if (_xQuality.exists(did))
405  {
406  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
407  if (
410  continue;
411  }
412  HcalElectronicsId const& eid = _ehashmap.lookup(did);
413 
414  _cSumQ_SubdetPM.fill(did, sumQ);
415  _cOccupancy_depth.fill(did);
416  if (_ptype==fOnline)
417  {
418  _cDigiSizevsLS_FED.fill(eid, _currentLS, frame.samples());
419  frame.samples()!=constants::DIGISIZE[did.subdet()-1]?
420  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
423  }
424  _cDigiSize_FED.fill(eid, frame.samples());
425  if (eid.isVMEid())
426  {
429  }
430  else
431  {
434  /*
435  if (!it->validate(0, it->size()))
436  {
437  _cCapIdRots_depth.fill(did);
438  _cCapIdRots_FEDuTCA.fill(eid, 1);
439  }*/
440  }
441 
442  for (int i=0; i<frame.samples(); i++)
443  {
444  _cADC_SubdetPM.fill(did, frame[i].adc());
445  _cfC_SubdetPM.fill(did,
446  constants::adc2fC[frame[i].adc()]);
447  if (sumQ>_cutSumQ_HBHE)
448  _cShapeCut_FED.fill(eid, i,
449  constants::adc2fC[frame[i].adc()]);
450  }
451 
452  if (sumQ>_cutSumQ_HBHE)
453  {
454  double timing = hcaldqm::utilities::aveTS_v10<QIE11DataFrame>(frame, 2.5, 0,
455  frame.samples()-1);
456  _cTimingCut_SubdetPM.fill(did, timing);
457  _cTimingCut_depth.fill(did, timing);
459  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
460  _cSumQ_depth.fill(did, sumQ);
461  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
462  if (_ptype==fOnline)
463  {
464  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
465  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
466  _cTimingCutvsieta_Subdet.fill(did, timing);
470  }
471  if (eid.isVMEid())
472  {
473  _cTimingCut_FEDVME.fill(eid, timing);
474  _cTimingCut_ElectronicsVME.fill(eid, timing);
477  }
478  else
479  {
480  _cTimingCut_FEDuTCA.fill(eid, timing);
481  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
484  }
485  did.subdet()==HcalBarrel?numChsCut++:numChsCutHE++;
486  }
487  did.subdet()==HcalBarrel?numChs++:numChsHE++;
488  }
490  numChs);
492  numChsHE);
493  // ONLINE ONLY!
494  if (_ptype==fOnline)
495  {
497  _currentLS, numChsCut);
499  numChsCut);
501  _currentLS, numChsCutHE);
503  numChsCutHE);
504  }
505  // ^^^ONLINE ONLY!
506  numChs=0;
507  numChsCut = 0;
508 
509  // HO collection
510  for (HODigiCollection::const_iterator it=cho->begin(); it!=cho->end();
511  ++it)
512  {
513  double sumQ = hcaldqm::utilities::sumQ<HODataFrame>(*it, 8.5, 0, it->size()-1);
514  HcalDetId const& did = it->id();
515  // filter out channels that are masked out
516  if (_xQuality.exists(did))
517  {
518  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
519  if (
522  continue;
523  }
524  HcalElectronicsId const& eid = it->elecId();
525 
526  _cSumQ_SubdetPM.fill(did, sumQ);
527  _cOccupancy_depth.fill(did);
528  if (_ptype==fOnline)
529  {
530  _cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
531  it->size()!=constants::DIGISIZE[did.subdet()-1]?
532  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
535  }
536  _cDigiSize_FED.fill(eid, it->size());
537  if (eid.isVMEid())
538  {
541  /*
542  if (!it->validate(0, it->size()))
543  _cCapIdRots_FEDVME.fill(eid, 1);
544  */
545  }
546  else
547  {
550  /*
551  if (!it->validate(0, it->size()))
552  _cCapIdRots_FEDuTCA.fill(eid, 1);*/
553  }
554 
555  for (int i=0; i<it->size(); i++)
556  {
557  _cADC_SubdetPM.fill(did, it->sample(i).adc());
558  _cfC_SubdetPM.fill(did, it->sample(i).nominal_fC());
559  if (sumQ>_cutSumQ_HO)
560  _cShapeCut_FED.fill(eid, i, it->sample(i).nominal_fC());
561  }
562 
563  if (sumQ>_cutSumQ_HO)
564  {
565  double timing = hcaldqm::utilities::aveTS<HODataFrame>(*it, 8.5, 0,
566  it->size()-1);
567  _cSumQ_depth.fill(did, sumQ);
568  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
570  _cTimingCut_SubdetPM.fill(did, timing);
571  _cTimingCut_depth.fill(did, timing);
572  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
573  if (_ptype==fOnline)
574  {
575  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
576  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
577  _cTimingCutvsieta_Subdet.fill(did, timing);
581  }
582  if (eid.isVMEid())
583  {
584  _cTimingCut_FEDVME.fill(eid, timing);
585  _cTimingCut_ElectronicsVME.fill(eid, timing);
588  }
589  else
590  {
591  _cTimingCut_FEDuTCA.fill(eid, timing);
592  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
595  }
596  numChsCut++;
597  }
598  numChs++;
599  }
601  numChs);
602 
603  if (_ptype==fOnline)
604  {
606  _currentLS, numChsCut);
608  numChsCut);
609  }
610  numChs=0; numChsCut=0;
611 
612  // HF collection
613  for (QIE10DigiCollection::const_iterator it=chf->begin(); it!=chf->end();
614  ++it)
615  {
616  QIE10DataFrame frame = *it;
617  double sumQ = hcaldqm::utilities::sumQ_v10<QIE10DataFrame>(frame,
618  2.5, 0, frame.samples()-1);
619  HcalDetId const& did = frame.detid();
620  // filter out channels that are masked out
621  if (_xQuality.exists(did))
622  {
623  HcalChannelStatus cs(did.rawId(), _xQuality.get(did));
624  if (
627  continue;
628  }
629  HcalElectronicsId const& eid = _ehashmap.lookup(did);
630 
631  _cSumQ_SubdetPM.fill(did, sumQ);
632  _cOccupancy_depth.fill(did);
633  if (_ptype==fOnline)
634  {
635  _xNChs.get(eid)++;
636  _cDigiSizevsLS_FED.fill(eid, _currentLS, frame.samples());
637  frame.samples()!=constants::DIGISIZE[did.subdet()-1]?
638  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
641  }
642  _cDigiSize_FED.fill(eid, frame.samples());
643  if (eid.isVMEid())
644  {
647  /*
648  if (!it->validate(0, it->size()))
649  _cCapIdRots_FEDVME.fill(eid, 1);*/
650  }
651  else
652  {
655  /*
656  if (!it->validate(0, it->size()))
657  _cCapIdRots_FEDuTCA.fill(eid, 1);*/
658  }
659 
660  for (int i=0; i<frame.samples(); i++)
661  {
662  _cADC_SubdetPM.fill(did, frame[i].adc());
663  _cfC_SubdetPM.fill(did,
664  constants::adc2fC[frame[i].adc()]);
665  if (sumQ>_cutSumQ_HF)
666  _cShapeCut_FED.fill(eid, i,
667  constants::adc2fC[frame[i].adc()]);
668  }
669 
670  if (sumQ>_cutSumQ_HF)
671  {
672  double timing = hcaldqm::utilities::aveTS_v10<QIE10DataFrame>(frame, 2.5, 0,
673  frame.samples()-1);
674  _cSumQ_depth.fill(did, sumQ);
675  _cSumQvsLS_SubdetPM.fill(did, _currentLS, sumQ);
676  if (_ptype==fOnline)
677  {
678  _cSumQvsBX_SubdetPM.fill(did, bx, sumQ);
679  _cTimingCutvsiphi_SubdetPM.fill(did, timing);
680  _cTimingCutvsieta_Subdet.fill(did, timing);
684 // _cOccupancyCutvsSlotvsLS_HFPM.fill(did, _currentLS);
685  }
686  _cTimingCut_SubdetPM.fill(did, timing);
687  _cTimingCut_depth.fill(did, timing);
688  _cTimingCutvsLS_FED.fill(eid, _currentLS, timing);
690  if (eid.isVMEid())
691  {
692  _cTimingCut_FEDVME.fill(eid, timing);
693  _cTimingCut_ElectronicsVME.fill(eid, timing);
696  }
697  else
698  {
699  _cTimingCut_FEDuTCA.fill(eid, timing);
700  _cTimingCut_ElectronicsuTCA.fill(eid, timing);
703  }
704  numChsCut++;
705  }
706  numChs++;
707  }
709  numChs);
710 
711  if (_ptype==fOnline)
712  {
714  _currentLS, numChsCut);
716  numChsCut);
717  }
718 }
719 
721  edm::LuminosityBlock const& lb, edm::EventSetup const& es)
722 {
723  DQTask::beginLuminosityBlock(lb, es);
724 
725 }
726 
728  edm::EventSetup const& es)
729 {
730  DQTask::endLuminosityBlock(lb, es);
731 }
732 
734 
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
hcaldqm::ContainerProf1D _cOccupancyCutvsBX_Subdet
T getUntrackedParameter(std::string const &, T const &) const
hcaldqm::ContainerXXX< uint32_t > _xDigiSize
int i
Definition: DBlmapReader.cc:9
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup 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:60
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
int ib
Definition: cuy.py:660
edm::InputTag _tagHF
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
hcaldqm::ContainerXXX< uint32_t > _xNChs
hcaldqm::ContainerProf1D _cTimingCutvsLS_FED
std::pair< uint16_t, uint16_t > fed2crate(int fed)
Definition: Utilities.cc:13
hcaldqm::ContainerProf1D _cTimingCutvsieta_Subdet
uint32_t rawId() const
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
hcaldqm::ContainerXXX< uint32_t > _xNChsNominal
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
DigiPhase1Task(edm::ParameterSet const &)
hcaldqm::ContainerProf1D _cTimingCutvsiphi_SubdetPM
#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 bunchCrossing() const
Definition: EventBase.h:65
virtual void _process(edm::Event const &, edm::EventSetup const &)
virtual void _resetMonitors(hcaldqm::UpdateFreq)
int const SPIGOT_MIN
Definition: Constants.h:85
hcaldqm::Container1D _cTimingCut_SubdetPM
MonitorElement * meNumEvents1LS
hcaldqm::ContainerXXX< uint32_t > _xUni
hcaldqm::ContainerProf1D _cSumQvsBX_SubdetPM
hcaldqm::Container2D _cOccupancyCut_depth
std::vector< uint32_t > _vhashFEDs
int const FIBER_VME_MIN
Definition: Constants.h:90
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsVME
void bookHistograms(fwlite::EventContainer &eventCont)
int const FIBERCH_MIN
Definition: Constants.h:100
hcaldqm::Container1D _cShapeCut_FED
void Fill(long long x)
std::vector< int > getFEDVMEList(HcalElectronicsMap const *)
Definition: Utilities.cc:78
hcaldqm::filter::HashFilter _filter_VME
virtual void fill(HcalDetId const &)
Definition: Container2D.cc:59
double _cutSumQ_HBHE
hcaldqm::ContainerProf2D _cTimingCut_depth
ProcessingType _ptype
Definition: DQModule.h:59
virtual void fill(uint32_t)
Definition: Container1D.cc:82
virtual void reset()
Definition: Container1D.cc:65
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, int debug=0)
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:47
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsuTCA
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fEnergy), int debug=0)
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
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:93
HcalElectronicsMap const * _emap
std::vector< HcalGenericDetId > allPrecisionId() const
Logger _logger
Definition: DQModule.h:70
hcaldqm::Container2D _cOccupancyCut_FEDVME
hcaldqm::filter::HashFilter _filter_uTCA
hcaldqm::Container1D _cOccupancyvsiphi_SubdetPM
std::string _name
Definition: DQModule.h:57
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
hcaldqm::Container1D _cOccupancyCutvsiphi_SubdetPM
int const CRATE_uTCA_MIN
Definition: Constants.h:65
bool isVMEid() const
hcaldqm::Container1D _cDigiSize_FED
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:276
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container2D.cc:895
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:99
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:56
double _thresh_unihf
int const DIGISIZE[SUBDET_NUM]
Definition: Constants.h:132
edm::InputTag _tagHO
hcaldqm::Container2D _cOccupancy_FEDVME
hcaldqm::Container2D _cOccupancy_ElectronicsVME
hcaldqm::ContainerProf1D _cSumQvsLS_SubdetPM
hcaldqm::Container1D _cOccupancyCutvsieta_Subdet
std::string const & label() const
Definition: InputTag.h:36
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:54
edm::InputTag _tagHBHE
hcaldqm::Container2D _cOccupancyCut_ElectronicsuTCA
std::vector< int > getFEDuTCAList(HcalElectronicsMap const *)
Definition: Utilities.cc:104
std::string _subsystem
Definition: DQModule.h:64
hcaldqm::Container1D _cSumQ_SubdetPM
virtual void initialize(hashfunctions::HashType, int debug=0)
Definition: ContainerXXX.h:91
virtual void initialize(FilterType ftype, HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:26
void setLumiFlag(void)
this ME is meant to be stored for each luminosity section
hcaldqm::Container2D _cOccupancyCut_ElectronicsVME
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
int samples() const
total number of samples in the digi
hcaldqm::Container1D _cOccupancyvsieta_Subdet
hcaldqm::ContainerProf1D _cDigiSizevsLS_FED
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:72
Definition: Run.h:43
float adc2fC[128]
hcaldqm::Container2D _cOccupancyCutvsiphivsLS_SubdetPM
double sumQ(DIGI const &digi, double ped, int i=0, int j=3)
Definition: Utilities.h:79
hcaldqm::ContainerProf1D _cOccupancyvsLS_Subdet
hcaldqm::Container2D _cOccupancy_FEDuTCA