test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TPTask.cc
Go to the documentation of this file.
2 
3 
4 using namespace hcaldqm;
5 using namespace hcaldqm::constants;
7  DQTask(ps)
8 {
10  edm::InputTag("hcalDigis"));
12  edm::InputTag("emulDigis"));
13 
14  _tokData = consumes<HcalTrigPrimDigiCollection>(_tagData);
15  _tokEmul = consumes<HcalTrigPrimDigiCollection>(_tagEmul);
16 
17  _skip1x1 = ps.getUntrackedParameter<bool>("skip1x1", true);
18  _cutEt = ps.getUntrackedParameter<int>("cutEt", 3);
20  "thresh_EtMsmRate_high", 0.2);
22  "thresh_EtMsmRate_low", 0.05);
24  "thresh_FGMsmRate", 0.2);
26  "thresh_FGMsmRate_low", 0.05);
27  _thresh_DataMsn = ps.getUntrackedParameter<double>("thresh_DataMsn",
28  0.1);
29  _thresh_EmulMsn = ps.getUntrackedParameter<double>("thresh_EmulMsn");
30  std::vector<int> tmp = ps.getUntrackedParameter<std::vector<int> >("vFGBitsReady");
31  for (uint32_t iii=0; iii<constants::NUM_FGBITS; iii++)
32  _vFGBitsReady.push_back(tmp[iii]);
33 
34  _vflags.resize(nTPFlag);
35  _vflags[fEtMsm]=flag::Flag("EtMsm");
36  _vflags[fFGMsm]=flag::Flag("FGMsm");
37  _vflags[fDataMsn]=flag::Flag("DataMsn");
38  _vflags[fEmulMsn]=flag::Flag("EmulMsn");
39  _vflags[fUnknownIds]=flag::Flag("UnknownIds");
40 }
41 
43  edm::Run const& r, edm::EventSetup const& es)
44 {
45  DQTask::bookHistograms(ib,r,es);
46 
47  // GET WHAT YOU NEED
49  es.get<HcalDbRecord>().get(dbs);
50  _emap = dbs->getHcalMapping();
51  std::vector<int> vFEDs = hcaldqm::utilities::getFEDList(_emap);
52  std::vector<int> vFEDsVME = hcaldqm::utilities::getFEDVMEList(_emap);
53  std::vector<int> vFEDsuTCA = hcaldqm::utilities::getFEDuTCAList(_emap);
54  std::vector<uint32_t> vVME;
55  std::vector<uint32_t> vuTCA;
56  std::vector<uint32_t> depth0;
57  vVME.push_back(HcalElectronicsId(FIBERCH_MIN,
60  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
62  vVME);
64  vuTCA);
65  depth0.push_back(HcalTrigTowerDetId(1, 1, 0).rawId());
67  depth0);
68 
69  // push the rawIds of each fed into the vector
70  // this vector is used at endlumi for online state generation
71  for (std::vector<int>::const_iterator it=vFEDsVME.begin();
72  it!=vFEDsVME.end(); ++it)
73  {
75  SPIGOT_MIN, (*it)-FED_VME_MIN).rawId());
76  }
77  for (std::vector<int>::const_iterator it=vFEDsuTCA.begin();
78  it!=vFEDsuTCA.end(); ++it)
79  {
81  SLOT_uTCA_MIN, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
82  }
83 
84  // INITIALIZE FIRST
85  // Et/FG
96  for (uint8_t iii=0; iii<constants::NUM_FGBITS; iii++)
97  {
102  }
103 
106  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
111  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
116  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
121  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
140 
141  // Occupancies
144  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
149  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
154  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
159  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
162 
165  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
170  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
175  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
180  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
183 
184  _cOccupancyData_depthlike.initialize(_name, "OccupancyData",
188  _cOccupancyEmul_depthlike.initialize(_name, "OccupancyEmul",
192  _cOccupancyCutData_depthlike.initialize(_name, "OccupancyCutData",
196  _cOccupancyCutEmul_depthlike.initialize(_name, "OccupancyCutEmul",
200 
201  // Mismatches
204  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
209  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
214  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
219  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
230 
231  // Missing Data w.r.t. Emulator
234  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
239  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
244  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
249  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
262  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
267  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
274 
275  _cOccupancyDatavsBX_TTSubdet.initialize(_name, "OccupancyDatavsBX",
279  _cOccupancyEmulvsBX_TTSubdet.initialize(_name, "OccupancyEmulvsBX",
283  _cOccupancyCutDatavsBX_TTSubdet.initialize(_name, "OccupancyCutDatavsBX",
287  _cOccupancyCutEmulvsBX_TTSubdet.initialize(_name, "OccupancyCutEmulvsBX",
291 
292  // INITIALIZE HISTOGRAMS to be used in Online only!
293  if (_ptype==fOnline)
294  {
295  _cEtCorr2x3_TTSubdet.initialize(_name, "EtCorr2x3",
300  _cOccupancyData2x3_depthlike.initialize(_name, "OccupancyData2x3",
304  _cOccupancyEmul2x3_depthlike.initialize(_name, "OccupancyEmul2x3",
308  _cEtCutDatavsLS_TTSubdet.initialize(_name, "EtCutDatavsLS",
312  _cEtCutEmulvsLS_TTSubdet.initialize(_name, "EtCutEmulvsLS",
316  _cEtCutDatavsBX_TTSubdet.initialize(_name, "EtCutDatavsBX",
320  _cEtCutEmulvsBX_TTSubdet.initialize(_name, "EtCutEmulvsBX",
324  _cEtCorrRatiovsLS_TTSubdet.initialize(_name, "EtCorrRatiovsLS",
328  _cEtCorrRatiovsBX_TTSubdet.initialize(_name, "EtCorrRatiovsBX",
332  _cEtMsmRatiovsLS_TTSubdet.initialize(_name, "EtMsmRatiovsLS",
336  _cEtMsmRatiovsBX_TTSubdet.initialize(_name, "EtMsmRatiovsBX",
348  _cMsnDatavsLS_TTSubdet.initialize(_name, "MsnDatavsLS",
352  _cMsnCutDatavsLS_TTSubdet.initialize(_name, "MsnCutDatavsLS",
356  _cMsnDatavsBX_TTSubdet.initialize(_name, "MsnDatavsBX",
360  _cMsnCutDatavsBX_TTSubdet.initialize(_name, "MsnCutDatavsBX",
364  _cMsnEmulvsLS_TTSubdet.initialize(_name, "MsnEmulvsLS",
368  _cMsnCutEmulvsLS_TTSubdet.initialize(_name, "MsnCutEmulvsLS",
372  _cMsnEmulvsBX_TTSubdet.initialize(_name, "MsnEmulvsBX",
376  _cMsnCutEmulvsBX_TTSubdet.initialize(_name, "MsnCutEmulvsBX",
380  _cOccupancyDatavsLS_TTSubdet.initialize(_name, "OccupancyDatavsLS",
385  "OccupancyCutDatavsLS",
389  _cOccupancyDatavsBX_TTSubdet.initialize(_name, "OccupancyDatavsBX",
394  "OccupancyCutDatavsBX",
398  _cOccupancyEmulvsLS_TTSubdet.initialize(_name, "OccupancyEmulvsLS",
403  "OccupancyCutEmulvsLS",
407  _cOccupancyEmulvsBX_TTSubdet.initialize(_name, "OccupancyEmulvsBX",
412  "OccupancyCutEmulvsBX",
416  _cSummaryvsLS_FED.initialize(_name, "SummaryvsLS",
421  _cSummaryvsLS.initialize(_name, "SummaryvsLS",
425 
433  }
434 
435  // BOOK HISTOGRAMS
436  char aux[20];
437  for (unsigned int iii=0; iii<constants::NUM_FGBITS; iii++)
438  {
439  sprintf(aux, "BIT%d", iii);
440  _cFGCorr_TTSubdet[iii].book(ib, _emap, _subsystem, aux);
441  }
480 
481  // whatever has to go online only goes here
482  if (_ptype==fOnline)
483  {
515 
516  _xEtMsm.book(_emap);
517  _xFGMsm.book(_emap);
523  }
524 
525  // initialize the hash map
527 
528  // book the flag for unknown ids and the online guy as well
530  meUnknownIds1LS = ib.book1D("UnknownIds", "UnknownIds",
531  1, 0, 1);
532  _unknownIdsPresent = false;
534 }
535 
537 {
538  DQTask::_resetMonitors(uf);
539  switch (uf)
540  {
541  case hcaldqm::f1LS:
542  _unknownIdsPresent = false;
543  break;
544  default :
545  break;
546  }
547 }
548 
549 /* virtual */ void TPTask::_process(edm::Event const& e,
550  edm::EventSetup const&)
551 {
554  if (!e.getByToken(_tokData, cdata))
555  _logger.dqmthrow("Collection HcalTrigPrimDigiCollection isn't available"
556  + _tagData.label() + " " + _tagData.instance());
557  if (!e.getByToken(_tokEmul, cemul))
558  _logger.dqmthrow("Collection HcalTrigPrimDigiCollection isn't available"
559  + _tagEmul.label() + " " + _tagEmul.instance());
560 
561  // extract some info per event
562  int bx = e.bunchCrossing();
563 
564  // some summaries... per event
565  int numHBHE(0), numHF(0), numCutHBHE(0), numCutHF(0);
566  int numCorrHBHE(0), numCorrHF(0);
567  int numMsmHBHE(0), numMsmHF(0);
568  int numMsnHBHE(0), numMsnHF(0), numMsnCutHBHE(0), numMsnCutHF(0);
569 
570  // for explanation see RecHit or Digi Tasks
571  uint32_t rawidHBHEValid = 0;
572  uint32_t rawidHFValid = 0;
573 
574  /*
575  * STEP1:
576  * Loop over the data digis and
577  * - do ... for all the data digis
578  * - find the emulator digi
579  * --- compare soi Et
580  * --- compare soi FG
581  * --- Do not fill anything for emulator Et!!!
582  */
583  for (HcalTrigPrimDigiCollection::const_iterator it=cdata->begin();
584  it!=cdata->end(); ++it)
585  {
586  // Explicit check on the DetIds present in the Collection
587  HcalTrigTowerDetId tid = it->id();
588  uint32_t rawid = _ehashmap.lookup(tid);
589  if (rawid==0)
590  {meUnknownIds1LS->Fill(1); _unknownIdsPresent = true; continue;}
591  HcalElectronicsId const& eid(rawid);
592  if (tid.ietaAbs()>=29)
593  rawidHFValid = tid.rawId();
594  else
595  rawidHBHEValid = tid.rawId();
596 
597  //
598  // HF 2x3 TPs Treat theam separately and only for ONLINE!
599  //
600  if (tid.version()==0 && tid.ietaAbs()>=29)
601  {
602  // do this only for online processing
603  if (_ptype==fOnline)
604  {
606  HcalTrigPrimDigiCollection::const_iterator jt=cemul->find(tid);
607  if (jt!=cemul->end())
608  _cEtCorr2x3_TTSubdet.fill(tid, it->SOI_compressedEt(),
609  jt->SOI_compressedEt());
610  }
611 
612  // skip to the next tp digi
613  continue;
614  }
615 
616  // FROM THIS POINT, HBHE + 1x1 HF TPs
617  int soiEt_d = it->t0().compressedEt();
618  int soiFG_d[constants::NUM_FGBITS];
619  for (uint32_t ibit=0; ibit<constants::NUM_FGBITS; ibit++)
620  soiFG_d[ibit] = it->t0().fineGrain(ibit)?1:0;
621  tid.ietaAbs()>=29?numHF++:numHBHE++;
622 
623  // fill w/o a cut
624  _cEtData_TTSubdet.fill(tid, soiEt_d);
625  _cEtData_depthlike.fill(tid, soiEt_d);
627  if (eid.isVMEid())
628  {
630  _cEtData_ElectronicsVME.fill(eid, soiEt_d);
631  }
632  else
633  {
635  _cEtData_ElectronicsuTCA.fill(eid, soiEt_d);
636  }
637 
638  // FILL w/a CUT
639  if (soiEt_d>_cutEt)
640  {
641  tid.ietaAbs()>=29?numCutHF++:numCutHBHE++;
643  _cEtCutData_depthlike.fill(tid, soiEt_d);
644 
645  // ONLINE ONLY!
646  if (_ptype==fOnline)
647  {
649  _cEtCutDatavsBX_TTSubdet.fill(tid, bx, soiEt_d);
650  _xDataTotal.get(eid)++;
651  }
652  // ^^^ONLINE ONLY!
653 
654  if (eid.isVMEid())
656  else
658  }
659 
660  // FIND the EMULATOR DIGI
661  HcalTrigPrimDigiCollection::const_iterator jt=cemul->find(tid);
662  if (jt!=cemul->end())
663  {
664  // if PRESENT!
665  int soiEt_e = jt->SOI_compressedEt();
666  int soiFG_e[constants::NUM_FGBITS];
667  for (uint32_t ibit=0; ibit<constants::NUM_FGBITS; ibit++)
668  soiFG_e[ibit] = jt->t0().fineGrain(ibit)?1:0;
669  // if both are zeroes => set 1
670  double rEt = soiEt_d==0 && soiEt_e==0?1:
671  double(std::min(soiEt_d, soiEt_e))/
672  double(std::max(soiEt_e, soiEt_d));
673 
674  // ONLINE ONLY!
675  if (_ptype==fOnline)
676  {
677  _xNumCorr.get(eid)++;
678  tid.ietaAbs()>=29?numCorrHF++:numCorrHBHE++;
680  _cEtCorrRatiovsBX_TTSubdet.fill(tid, bx, rEt);
681  }
682  // ^^^ONLINE ONLY!
683 
684  _cEtCorrRatio_depthlike.fill(tid, rEt);
685  _cEtCorr_TTSubdet.fill(tid, soiEt_d, soiEt_e);
686  for (uint32_t ibit=0; ibit<constants::NUM_FGBITS; ibit++)
687  _cFGCorr_TTSubdet[ibit].fill(tid, soiFG_d[ibit], soiFG_e[ibit]);
688  // FILL w/o a CUT
689  if (eid.isVMEid())
690  {
692  }
693  else
694  {
696  }
697 
698  // if SOI Et are not equal
699  // fill mismatched
700  if (soiEt_d!=soiEt_e)
701  {
702  tid.ietaAbs()>=29?numMsmHF++:numMsmHBHE++;
703  _cEtMsm_depthlike.fill(tid);
704  if (eid.isVMEid())
706  else
708  if (_ptype==fOnline)
709  _xEtMsm.get(eid)++;
710  }
711  // if SOI FG are not equal
712  // fill mismatched.
713  // Do this comparison only for FG Bits that are commissioned
714  for (uint32_t ibit=0; ibit<constants::NUM_FGBITS; ibit++)
715  if (soiFG_d[ibit]!=soiFG_e[ibit] && _vFGBitsReady[ibit])
716  {
717  _cFGMsm_depthlike.fill(tid);
718  if (eid.isVMEid())
720  else
722  if (_ptype==fOnline)
723  _xFGMsm.get(eid)++;
724  }
725  }
726  else
727  {
728  // IF MISSING
729  _cEtCorr_TTSubdet.fill(tid, soiEt_d, -2);
731  tid.ietaAbs()>=29?numMsnHF++:numMsnHBHE++;
732  if (eid.isVMEid())
734  else
736 
737  if (soiEt_d>_cutEt)
738  {
739  tid.ietaAbs()>=29?numMsnCutHF++:numMsnCutHBHE++;
740  if (_ptype==fOnline)
741  _xEmulMsn.get(eid)++;
742  }
743  }
744  }
745 
746  if (rawidHFValid!=0 && rawidHBHEValid!=0)
747  {
748  // ONLINE ONLY!
749  if (_ptype==fOnline)
750  {
752  numHBHE);
754  numHF);
756  bx, numCutHBHE);
758  numCutHF);
760  _currentLS, numHBHE);
762  _currentLS,numHF);
764  _currentLS, numCutHBHE);
766  _currentLS, numCutHF);
767 
769  numMsmHBHE);
771  numMsmHF);
772  _cEtMsmvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx,
773  numMsmHBHE);
774  _cEtMsmvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx,
775  numMsmHF);
776 
778  _currentLS,
779  double(numMsmHBHE)/double(numCorrHBHE));
781  _currentLS,
782  double(numMsmHF)/double(numCorrHF));
784  double(numMsmHBHE)/double(numCorrHBHE));
786  double(numMsmHF)/double(numCorrHF));
787 
789  _currentLS, numMsnHBHE);
791  _currentLS, numMsnHF);
793  _currentLS, numMsnCutHBHE);
795  _currentLS, numMsnCutHF);
796 
798  bx, numMsnHBHE);
800  bx, numMsnHF);
802  bx, numMsnCutHBHE);
804  bx, numMsnCutHF);
805  }
806  }
807 
808  numHBHE=0; numHF=0; numCutHBHE=0; numCutHF=0;
809  numMsnHBHE=0; numMsnHF=0; numCutHBHE=0; numCutHF=0;
810 
811  // reset
812  rawidHBHEValid = 0;
813  rawidHFValid = 0;
814 
815  /*
816  * STEP2:
817  * Loop over the emulator digis and
818  * - do ... for all the emulator digis
819  * - find data digi and
820  * --- if found skip
821  * --- if not found - fill the missing Data plot
822  */
823  for (HcalTrigPrimDigiCollection::const_iterator it=cemul->begin();
824  it!=cemul->end(); ++it)
825  {
826  // Explicit check on the DetIds present in the Collection
827  HcalTrigTowerDetId tid = it->id();
828  uint32_t rawid = _ehashmap.lookup(tid);
829  if (rawid==0)
830  {meUnknownIds1LS->Fill(1); _unknownIdsPresent = true; continue;}
831  HcalElectronicsId const& eid(rawid);
832  if (tid.ietaAbs()>=29)
833  rawidHFValid = tid.rawId();
834  else
835  rawidHBHEValid = tid.rawId();
836 
837  // HF 2x3 TPs. Only do it for Online!!!
838  if (tid.version()==0 && tid.ietaAbs()>=29)
839  {
840  // only do this for online processing
841  if (_ptype==fOnline)
843  continue;
844  }
845  int soiEt = it->SOI_compressedEt();
846 
847  // FILL/INCREMENT w/o a CUT
848  tid.ietaAbs()>=29?numHF++:numHBHE++;
849  _cEtEmul_TTSubdet.fill(tid, soiEt);
850  _cEtEmul_depthlike.fill(tid, soiEt);
852  if (eid.isVMEid())
853  {
855  _cEtEmul_ElectronicsVME.fill(eid, soiEt);
856  }
857  else
858  {
860  _cEtEmul_ElectronicsuTCA.fill(eid, soiEt);
861  }
862 
863  // FILL w/ a CUT
864  if (soiEt>_cutEt)
865  {
866  tid.ietaAbs()>=29?numCutHF++:numCutHBHE++;
868  _cEtCutEmul_depthlike.fill(tid, soiEt);
869  if (eid.isVMEid())
871  else
873 
874  // ONLINE ONLY!
875  if (_ptype==fOnline)
876  {
878  _cEtCutEmulvsBX_TTSubdet.fill(tid, bx, soiEt);
879  _xEmulTotal.get(eid)++;
880  }
881  // ^^^ONLINE ONLY!
882  }
883 
884  // FIND a data digi
885  HcalTrigPrimDigiCollection::const_iterator jt=cdata->find(tid);
886  if (jt==cdata->end())
887  {
888  tid.ietaAbs()>=29?numMsnHF++:numMsnHBHE++;
889  _cEtCorr_TTSubdet.fill(tid, -2, soiEt);
890  if (eid.isVMEid())
892  else
894  if (soiEt>_cutEt)
895  {
896  tid.ietaAbs()>=29?numMsnCutHF++:numMsnCutHBHE++;
897  if (_ptype==fOnline)
898  _xDataMsn.get(eid)++;
899  }
900  }
901  }
902 
903  if (rawidHBHEValid!=0 && rawidHFValid!=0)
904  {
905  // ONLINE ONLY!
906  if (_ptype==fOnline)
907  {
909  numHBHE);
911  numHF);
913  bx,
914  numCutHBHE);
916  numCutHF);
917 
919  _currentLS, numHBHE);
921  _currentLS,numHF);
923  _currentLS, numCutHBHE);
925  _currentLS, numCutHF);
926 
928  _currentLS, numMsnHBHE);
930  _currentLS, numMsnHF);
932  _currentLS, numMsnCutHBHE);
934  _currentLS, numMsnCutHF);
935 
937  bx, numMsnHBHE);
939  bx, numMsnHF);
941  bx, numMsnCutHBHE);
943  bx, numMsnCutHF);
944  }
945  // ^^^ONLINE ONLY!
946  }
947 }
948 
950  edm::EventSetup const& es)
951 {
952  DQTask::beginLuminosityBlock(lb, es);
953 }
954 
956  edm::EventSetup const& es)
957 {
958  if (_ptype!=fOnline)
959  return;
960 
961  //
962  // GENERATE STATUS ONLY FOR ONLINE!
963  //
964  for (std::vector<uint32_t>::const_iterator it=_vhashFEDs.begin();
965  it!=_vhashFEDs.end(); ++it)
966  {
967  flag::Flag fSum("TP");
969 
970  std::vector<uint32_t>::const_iterator cit=std::find(
971  _vcdaqEids.begin(), _vcdaqEids.end(), *it);
972  if (cit==_vcdaqEids.end())
973  {
974  // not @cDAQ
975  for (uint32_t iflag=0; iflag<_vflags.size(); iflag++)
976  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, int(iflag),
977  int(flag::fNCDAQ));
979  continue;
980  }
981 
983  {
984  // FED is @cDAQ
985  double etmsm = _xNumCorr.get(eid)>0?
986  double(_xEtMsm.get(eid))/double(_xNumCorr.get(eid)):0;
987  double fgmsm = _xNumCorr.get(eid)>0?
988  double(_xFGMsm.get(eid))/double(_xNumCorr.get(eid)):0;
989  /*
990  * UNUSED VARS
991  * double dmsm = _xDataTotal.get(eid)>0?
992  double(_xDataMsn.get(eid))/double(_xDataTotal.get(eid)):0;
993  double emsm = _xEmulTotal.get(eid)>0?
994  double(_xEmulMsn.get(eid))/double(_xEmulTotal.get(eid)):0;
995  */
996  if (etmsm>=_thresh_EtMsmRate_high)
997  _vflags[fEtMsm]._state = flag::fBAD;
998  else if (etmsm>=_thresh_EtMsmRate_low)
1000  else
1001  _vflags[fEtMsm]._state = flag::fGOOD;
1002  if (fgmsm>=_thresh_FGMsmRate_high)
1003  _vflags[fFGMsm]._state = flag::fBAD;
1004  else if (fgmsm>=_thresh_FGMsmRate_low)
1005  _vflags[fFGMsm]._state = flag::fPROBLEMATIC;
1006  else
1007  _vflags[fFGMsm]._state = flag::fGOOD;
1008  /*
1009  * DISABLE THESE FLAGS FOR ONLINE FOR NOW!
1010  if (dmsm>=_thresh_DataMsn)
1011  _vflags[fDataMsn]._state = flag::fBAD;
1012  else
1013  _vflags[fDataMsn]._state = flag::fGOOD;
1014  if (emsm>=_thresh_EmulMsn)
1015  _vflags[fEmulMsn]._state = flag::fBAD;
1016  else
1017  _vflags[fEmulMsn]._state = flag::fGOOD;
1018  */
1019  }
1020 
1021  if (_unknownIdsPresent)
1022  _vflags[fUnknownIds]._state = flag::fBAD;
1023  else
1024  _vflags[fUnknownIds]._state = flag::fGOOD;
1025 
1026  int iflag=0;
1027  for (std::vector<flag::Flag>::iterator ft=_vflags.begin();
1028  ft!=_vflags.end(); ++ft)
1029  {
1030  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, int(iflag),
1031  ft->_state);
1032  fSum+=(*ft);
1033  iflag++;
1034 
1035  // this is the MUST!
1036  // reset after using this flag
1037  ft->reset();
1038  }
1039  _cSummaryvsLS.setBinContent(eid, _currentLS, int(fSum._state));
1040  }
1041 
1042  // reset...
1045  _xEmulTotal.reset();
1046 
1047  // in the end always do the DQTask::endLumi
1048  DQTask::endLuminosityBlock(lb, es);
1049 }
1050 
1052 
hcaldqm::ContainerProf1D _cEtCorrRatiovsBX_TTSubdet
Definition: TPTask.h:103
hcaldqm::ContainerXXX< uint32_t > _xDataTotal
Definition: TPTask.h:172
T getUntrackedParameter(std::string const &, T const &) const
bool _skip1x1
Definition: TPTask.h:57
hcaldqm::ContainerProf1D _cMsnCutEmulvsBX_TTSubdet
Definition: TPTask.h:154
hcaldqm::Container2D _cMsnData_ElectronicsVME
Definition: TPTask.h:139
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *qy=new ValueQuantity(quantity::fN), int debug=0)
Definition: Container1D.cc:40
hcaldqm::Container1D _cEtEmul_TTSubdet
Definition: TPTask.h:78
hcaldqm::ContainerSingleProf2D _cEtData_depthlike
Definition: TPTask.h:93
edm::InputTag _tagData
Definition: TPTask.h:39
virtual void setBinContent(HcalDetId const &, int)
Definition: Container2D.cc:235
string fill
Definition: lumiContext.py:319
int const CRATE_VME_MIN
Definition: Constants.h:60
hcaldqm::ContainerProf1D _cMsnDatavsBX_TTSubdet
Definition: TPTask.h:144
double _thresh_FGMsmRate_high
Definition: TPTask.h:59
int ib
Definition: cuy.py:660
uint16_t fed2crate(int fed)
Definition: Utilities.cc:12
hcaldqm::ContainerSingle2D _cOccupancyCutEmul_depthlike
Definition: TPTask.h:120
hcaldqm::ContainerProf1D _cMsnDatavsLS_TTSubdet
Definition: TPTask.h:142
std::vector< uint32_t > _vhashFEDs
Definition: TPTask.h:65
hcaldqm::ContainerProf1D _cEtMsmvsLS_TTSubdet
Definition: TPTask.h:133
hcaldqm::Container2D _cOccupancyData_ElectronicsVME
Definition: TPTask.h:106
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
hcaldqm::ContainerProf1D _cEtCutEmulvsLS_TTSubdet
Definition: TPTask.h:83
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: TPTask.h:69
edm::EDGetTokenT< HcalTrigPrimDigiCollection > _tokData
Definition: TPTask.h:41
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
UpdateFreq
Definition: DQTask.h:17
MonitorElement * meUnknownIds1LS
Definition: TPTask.h:167
State _state
Definition: Flag.h:79
std::vector< HcalTriggerPrimitiveDigi >::const_iterator const_iterator
hcaldqm::ContainerSingleProf2D _cEtCorrRatio_depthlike
Definition: TPTask.h:101
hcaldqm::ContainerProf1D _cMsnCutDatavsBX_TTSubdet
Definition: TPTask.h:145
int bunchCrossing() const
Definition: EventBase.h:65
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
int _cutEt
Definition: TPTask.h:58
int const SPIGOT_MIN
Definition: Constants.h:85
hcaldqm::ContainerProf1D _cMsnCutDatavsLS_TTSubdet
Definition: TPTask.h:143
virtual void reset()
Definition: ContainerXXX.h:366
hcaldqm::ContainerSingle2D _cOccupancyCutData_depthlike
Definition: TPTask.h:119
double _thresh_FGMsmRate_low
Definition: TPTask.h:59
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
int const FIBER_VME_MIN
Definition: Constants.h:90
hcaldqm::ContainerProf1D _cOccupancyDatavsLS_TTSubdet
Definition: TPTask.h:161
hcaldqm::Container2D _cOccupancyEmul_ElectronicsVME
Definition: TPTask.h:108
hcaldqm::ContainerProf1D _cEtMsmRatiovsLS_TTSubdet
Definition: TPTask.h:134
void bookHistograms(fwlite::EventContainer &eventCont)
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: TPTask.cc:955
hcaldqm::ContainerSingle2D _cOccupancyEmul2x3_depthlike
Definition: TPTask.h:124
hcaldqm::ContainerProf1D _cMsnEmulvsBX_TTSubdet
Definition: TPTask.h:153
int const FIBERCH_MIN
Definition: Constants.h:100
virtual void initialize(std::string const &folder, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fN), int debug=0)
void Fill(long long x)
double _thresh_EtMsmRate_low
Definition: TPTask.h:59
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
hcaldqm::ContainerProf2D _cEtCorrRatio_ElectronicsuTCA
Definition: TPTask.h:100
std::vector< int > getFEDVMEList(HcalElectronicsMap const *)
Definition: Utilities.cc:71
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: TPTask.cc:949
hcaldqm::Container2D _cFGCorr_TTSubdet[hcaldqm::constants::NUM_FGBITS]
Definition: TPTask.h:81
hcaldqm::ContainerXXX< uint32_t > _xDataMsn
Definition: TPTask.h:172
virtual void fill(HcalDetId const &)
Definition: Container2D.cc:59
hcaldqm::filter::HashFilter _filter_uTCA
Definition: TPTask.h:73
double _thresh_EmulMsn
Definition: TPTask.h:59
hcaldqm::Container2D _cSummaryvsLS_FED
Definition: TPTask.h:170
ProcessingType _ptype
Definition: DQModule.h:59
virtual void fill(uint32_t)
Definition: Container1D.cc:82
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, int debug=0)
hcaldqm::Container2D _cOccupancyCutData_ElectronicsVME
Definition: TPTask.h:111
std::vector< hcaldqm::flag::Flag > _vflags
Definition: TPTask.h:45
void reset()
Definition: Flag.h:76
virtual void setBinContent(int, int, int)
hcaldqm::ContainerXXX< uint32_t > _xEmulMsn
Definition: TPTask.h:172
void dqmthrow(std::string const &msg) const
Definition: Logger.h:15
hcaldqm::ContainerProf2D _cEtData_ElectronicsVME
Definition: TPTask.h:87
hcaldqm::ContainerProf1D _cEtMsmvsBX_TTSubdet
Definition: TPTask.h:135
HcalElectronicsMap const * _emap
Definition: TPTask.h:68
int const FED_VME_MIN
Definition: Constants.h:47
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fEnergy), int debug=0)
TPTask(edm::ParameterSet const &)
Definition: TPTask.cc:6
hcaldqm::ContainerProf1D _cOccupancyDatavsBX_TTSubdet
Definition: TPTask.h:157
hcaldqm::ContainerProf2D _cEtEmul_ElectronicsuTCA
Definition: TPTask.h:90
hcaldqm::ContainerProf1D _cEtCorrRatiovsLS_TTSubdet
Definition: TPTask.h:102
hcaldqm::ContainerSingle2D _cOccupancyData2x3_depthlike
Definition: TPTask.h:123
hcaldqm::ContainerSingle2D _cFGMsm_depthlike
Definition: TPTask.h:132
hcaldqm::ContainerProf2D _cEtEmul_ElectronicsVME
Definition: TPTask.h:89
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
hcaldqm::filter::HashFilter _filter_depth0
Definition: TPTask.h:74
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
hcaldqm::ContainerProf2D _cEtCorrRatio_ElectronicsVME
Definition: TPTask.h:99
hcaldqm::ContainerXXX< uint32_t > _xEtMsm
Definition: TPTask.h:172
hcaldqm::Container2D _cEtMsm_ElectronicsuTCA
Definition: TPTask.h:128
hcaldqm::Container2D _cOccupancyCutEmul_ElectronicsuTCA
Definition: TPTask.h:114
Logger _logger
Definition: DQModule.h:70
T min(T a, T b)
Definition: MathUtil.h:58
double _thresh_EtMsmRate_high
Definition: TPTask.h:59
std::string _name
Definition: DQModule.h:57
hcaldqm::ContainerProf1D _cOccupancyCutDatavsLS_TTSubdet
Definition: TPTask.h:163
hcaldqm::Container2D _cOccupancyCutData_ElectronicsuTCA
Definition: TPTask.h:112
hcaldqm::ContainerSingle2D _cSummaryvsLS
Definition: TPTask.h:171
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
int const CRATE_uTCA_MIN
Definition: Constants.h:65
hcaldqm::ContainerSingle2D _cOccupancyData_depthlike
Definition: TPTask.h:117
hcaldqm::Container2D _cOccupancyCutEmul_ElectronicsVME
Definition: TPTask.h:113
hcaldqm::ContainerSingle2D _cEtMsm_depthlike
Definition: TPTask.h:131
hcaldqm::ContainerProf1D _cEtCutDatavsLS_TTSubdet
Definition: TPTask.h:82
hcaldqm::Container2D _cMsnData_ElectronicsuTCA
Definition: TPTask.h:140
hcaldqm::Container2D _cFGMsm_ElectronicsVME
Definition: TPTask.h:129
hcaldqm::Container2D _cMsnEmul_ElectronicsuTCA
Definition: TPTask.h:149
hcaldqm::ContainerProf1D _cOccupancyEmulvsBX_TTSubdet
Definition: TPTask.h:158
bool isVMEid() const
hcaldqm::ContainerXXX< uint32_t > _xEmulTotal
Definition: TPTask.h:172
double _thresh_DataMsn
Definition: TPTask.h:59
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:276
bool isFEDHBHE(HcalElectronicsId const &)
Definition: Utilities.cc:124
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::Container2D _cFGMsm_ElectronicsuTCA
Definition: TPTask.h:130
virtual void initialize(std::string const &folder, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fN), int debug=0)
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container1D.cc:957
hcaldqm::ContainerProf1D _cEtCutDatavsBX_TTSubdet
Definition: TPTask.h:84
int version() const
get the version code for the trigger tower
const T & get() const
Definition: EventSetup.h:56
std::vector< bool > _vFGBitsReady
Definition: TPTask.h:62
hcaldqm::ContainerProf1D _cOccupancyCutEmulvsBX_TTSubdet
Definition: TPTask.h:160
hcaldqm::ContainerXXX< uint32_t > _xFGMsm
Definition: TPTask.h:172
hcaldqm::Container2D _cOccupancyEmul_ElectronicsuTCA
Definition: TPTask.h:109
std::string const & label() const
Definition: InputTag.h:36
hcaldqm::ContainerProf1D _cOccupancyCutDatavsBX_TTSubdet
Definition: TPTask.h:159
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
hcaldqm::ContainerSingle2D _cOccupancyEmul_depthlike
Definition: TPTask.h:118
hcaldqm::Container2D _cOccupancyData_ElectronicsuTCA
Definition: TPTask.h:107
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:249
int const NUM_FGBITS
Definition: Constants.h:178
edm::EDGetTokenT< HcalTrigPrimDigiCollection > _tokEmul
Definition: TPTask.h:42
hcaldqm::ContainerProf1D _cEtCutEmulvsBX_TTSubdet
Definition: TPTask.h:85
std::vector< int > getFEDList(HcalElectronicsMap const *)
Definition: Utilities.cc:47
hcaldqm::Container2D _cEtMsm_ElectronicsVME
Definition: TPTask.h:127
hcaldqm::Container2D _cEtCorr2x3_TTSubdet
Definition: TPTask.h:80
std::vector< int > getFEDuTCAList(HcalElectronicsMap const *)
Definition: Utilities.cc:97
Definition: TPTask.h:22
hcaldqm::Container2D _cEtCorr_TTSubdet
Definition: TPTask.h:79
std::string _subsystem
Definition: DQModule.h:64
hcaldqm::ContainerSingleProf2D _cEtEmul_depthlike
Definition: TPTask.h:94
hcaldqm::ContainerXXX< uint32_t > _xNumCorr
Definition: TPTask.h:172
bool _unknownIdsPresent
Definition: TPTask.h:168
hcaldqm::filter::HashFilter _filter_VME
Definition: TPTask.h:72
std::vector< uint32_t > _vcdaqEids
Definition: DQTask.h:65
hcaldqm::ContainerProf1D _cOccupancyEmulvsLS_TTSubdet
Definition: TPTask.h:162
hcaldqm::ContainerProf1D _cOccupancyCutEmulvsLS_TTSubdet
Definition: TPTask.h:164
virtual void fill(int, int)
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::ContainerProf1D _cEtMsmRatiovsBX_TTSubdet
Definition: TPTask.h:136
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
edm::InputTag _tagEmul
Definition: TPTask.h:40
hcaldqm::ContainerSingleProf2D _cEtCutEmul_depthlike
Definition: TPTask.h:96
hcaldqm::ContainerProf2D _cEtData_ElectronicsuTCA
Definition: TPTask.h:88
hcaldqm::ContainerProf1D _cMsnEmulvsLS_TTSubdet
Definition: TPTask.h:151
Readout chain identification for Hcal.
std::string const & instance() const
Definition: InputTag.h:37
hcaldqm::ContainerSingle2D _cMsnData_depthlike
Definition: TPTask.h:141
bool isFEDHF(HcalElectronicsId const &)
Definition: Utilities.cc:146
int ietaAbs() const
get the absolute value of the tower ieta
virtual void _process(edm::Event const &, edm::EventSetup const &)
Definition: TPTask.cc:549
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)
Definition: TPTask.cc:42
int const SLOT_uTCA_MIN
Definition: Constants.h:72
hcaldqm::ContainerSingleProf2D _cEtCutData_depthlike
Definition: TPTask.h:95
Definition: Run.h:43
virtual void _resetMonitors(hcaldqm::UpdateFreq)
Definition: TPTask.cc:536
hcaldqm::Container1D _cEtData_TTSubdet
Definition: TPTask.h:77
hcaldqm::ContainerSingle2D _cMsnEmul_depthlike
Definition: TPTask.h:150
hcaldqm::ContainerProf1D _cMsnCutEmulvsLS_TTSubdet
Definition: TPTask.h:152
hcaldqm::Container2D _cMsnEmul_ElectronicsVME
Definition: TPTask.h:148