CMS 3D CMS Logo

TPTask.cc
Go to the documentation of this file.
2 #include "DQM/L1TMonitor/interface/L1TStage2CaloLayer1.h" // For ComparisonHelper::zip
3 
4 using namespace hcaldqm;
5 using namespace hcaldqm::constants;
7  _tagData = ps.getUntrackedParameter<edm::InputTag>("tagData", edm::InputTag("hcalDigis"));
8  _tagDataL1Rec = ps.getUntrackedParameter<edm::InputTag>("tagDataL1Rec", edm::InputTag("caloLayer1Digis"));
9  _tagEmul = ps.getUntrackedParameter<edm::InputTag>("tagEmul", edm::InputTag("emulDigis"));
10  _tagEmulNoTDCCut = ps.getUntrackedParameter<edm::InputTag>("tagEmulNoTDCCut", edm::InputTag("emulTPDigisNoTDCCut"));
11 
12  _tokData = consumes<HcalTrigPrimDigiCollection>(_tagData);
13  _tokDataL1Rec = consumes<HcalTrigPrimDigiCollection>(_tagDataL1Rec);
14  _tokEmul = consumes<HcalTrigPrimDigiCollection>(_tagEmul);
15  _tokEmulNoTDCCut = consumes<HcalTrigPrimDigiCollection>(_tagEmulNoTDCCut);
16 
17  _skip1x1 = ps.getUntrackedParameter<bool>("skip1x1", true);
18  _cutEt = ps.getUntrackedParameter<int>("cutEt", 3);
19  _thresh_EtMsmRate_high = ps.getUntrackedParameter<double>("thresh_EtMsmRate_high", 0.2);
20  _thresh_EtMsmRate_low = ps.getUntrackedParameter<double>("thresh_EtMsmRate_low", 0.05);
21  _thresh_FGMsmRate_high = ps.getUntrackedParameter<double>("thresh_FGMsmRate", 0.2);
22  _thresh_FGMsmRate_low = ps.getUntrackedParameter<double>("thresh_FGMsmRate_low", 0.05);
23  _thresh_DataMsn = ps.getUntrackedParameter<double>("thresh_DataMsn", 0.1);
24  _thresh_EmulMsn = ps.getUntrackedParameter<double>("thresh_EmulMsn");
25  std::vector<int> tmp = ps.getUntrackedParameter<std::vector<int> >("vFGBitsReady");
26  for (uint32_t iii = 0; iii < constants::NUM_FGBITS; iii++)
27  _vFGBitsReady.push_back(tmp[iii]);
28 
29  _vflags.resize(nTPFlag);
30  _vflags[fEtMsm] = flag::Flag("EtMsm");
31  _vflags[fDataMsn] = flag::Flag("DataMsn");
32  _vflags[fEmulMsn] = flag::Flag("EmulMsn");
33  _vflags[fUnknownIds] = flag::Flag("UnknownIds");
34  if (_ptype == fOnline) {
35  _vflags[fSentRecL1Msm] = flag::Flag("uHTR-L1TMsm");
36  }
37 }
38 
39 /* virtual */ void TPTask::bookHistograms(DQMStore::IBooker& ib, edm::Run const& r, edm::EventSetup const& es) {
40  DQTask::bookHistograms(ib, r, es);
41 
42  // GET WHAT YOU NEED
44  es.get<HcalDbRecord>().get(dbs);
45  _emap = dbs->getHcalMapping();
46  std::vector<uint32_t> vVME;
47  std::vector<uint32_t> vuTCA;
48  std::vector<uint32_t> depth0;
50  vuTCA.push_back(HcalElectronicsId(CRATE_uTCA_MIN, SLOT_uTCA_MIN, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
53  depth0.push_back(HcalTrigTowerDetId(1, 1, 0).rawId());
55 
56  // INITIALIZE FIRST
57  // Et/FG
59  "EtData",
63  0);
65  "EtEmul",
69  0);
71  "EtCorr",
76  0);
77  for (uint8_t iii = 0; iii < constants::NUM_FGBITS; iii++) {
79  "FGCorr",
84  0);
85  }
86 
88  "EtData",
92  0);
94  "EtEmul",
98  0);
100  "EtCutData",
104  0);
106  "EtCutEmul",
110  0);
111 
112  // Occupancy
114  "OccupancyData",
118  0);
120  "OccupancyEmul",
124  0);
126  "OccupancyCutData",
130  0);
132  "OccupancyCutEmul",
136  0);
137 
138  // Mismatches
140  "EtMsm",
144  0);
146  "FGMsm",
150  0);
151 
152  if (_ptype == fOnline) {
153  // Mismatches: sent vs received
155  "EtMsm_uHTR_L1T",
159  0);
161  "EtMsm_uHTR_L1T_LS",
164  0);
165  }
166 
167  // Missing Data w.r.t. Emulator
169  "MsnData",
173  0);
175  "MsnEmul",
179  0);
180 
182  "EtCorrRatio",
186  0);
187 
189  "OccupancyDatavsBX",
193  0);
195  "OccupancyEmulvsBX",
199  0);
201  "OccupancyCutDatavsBX",
205  0);
207  "OccupancyCutEmulvsBX",
211  0);
212 
213  // INITIALIZE HISTOGRAMS to be used in Online only!
214  if (_ptype == fOnline) {
216  "EtCorr2x3",
221  0);
223  "OccupancyData2x3",
227  0);
229  "OccupancyEmul2x3",
233  0);
235  "EtCutDatavsLS",
239  0);
241  "EtCutEmulvsLS",
245  0);
247  "EtCutDatavsBX",
251  0);
253  "EtCutEmulvsBX",
257  0);
259  "EtCorrRatiovsLS",
263  0);
265  "EtCorrRatiovsBX",
269  0);
271  "EtMsmRatiovsLS",
275  0);
277  "EtMsmRatiovsBX",
281  0);
283  "EtMsmvsLS",
287  0);
289  "EtMsmvsBX",
293  0);
295  "MsnDatavsLS",
299  0);
301  "MsnCutDatavsLS",
305  0);
307  "MsnDatavsBX",
311  0);
313  "MsnCutDatavsBX",
317  0);
319  "MsnEmulvsLS",
323  0);
325  "MsnCutEmulvsLS",
329  0);
331  "MsnEmulvsBX",
335  0);
337  "MsnCutEmulvsBX",
341  0);
343  "OccupancyDatavsLS",
347  0);
349  "OccupancyCutDatavsLS",
353  0);
355  "OccupancyDatavsBX",
359  0);
361  "OccupancyCutDatavsBX",
365  0);
367  "OccupancyEmulvsLS",
371  0);
373  "OccupancyCutEmulvsLS",
377  0);
379  "OccupancyEmulvsBX",
383  0);
385  "OccupancyCutEmulvsBX",
389  0);
390 
392  "OccupancyDataHF_depth",
396  0);
398  "OccupancyEmulHFNoTDC_depth",
402  0);
404  "OccupancyDataHF_ieta",
407  0),
409  "OccupancyEmulHFNoTDC_ieta",
412  0);
413  }
414 
415  // FED-based containers
416  if (_ptype != fOffline) { // hidefed2crate
417  std::vector<int> vFEDs = hcaldqm::utilities::getFEDList(_emap);
418  std::vector<int> vFEDsVME = hcaldqm::utilities::getFEDVMEList(_emap);
419  std::vector<int> vFEDsuTCA = hcaldqm::utilities::getFEDuTCAList(_emap);
420  // push the rawIds of each fed into the vector
421  // this vector is used at endlumi for online state generation
422  for (std::vector<int>::const_iterator it = vFEDsVME.begin(); it != vFEDsVME.end(); ++it) {
424  }
425  for (std::vector<int>::const_iterator it = vFEDsuTCA.begin(); it != vFEDsuTCA.end(); ++it) {
426  std::pair<uint16_t, uint16_t> cspair = hcaldqm::utilities::fed2crate(*it);
427  _vhashFEDs.push_back(HcalElectronicsId(cspair.first, cspair.second, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
428  }
430  "EtData",
432  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
435  0);
437  "EtData",
439  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
442  0);
444  "EtEmul",
446  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
449  0);
451  "EtEmul",
453  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
456  0);
457  // Occupancies
459  "OccupancyData",
461  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
464  0);
466  "OccupancyEmul",
468  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
471  0);
473  "OccupancyData",
475  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
478  0);
480  "OccupancyEmul",
482  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
485  0);
486 
488  "OccupancyCutData",
490  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
493  0);
495  "OccupancyCutEmul",
497  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
500  0);
502  _name,
503  "OccupancyCutData",
505  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
508  0);
510  _name,
511  "OccupancyCutEmul",
513  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
516  0);
517  // Mismatches
519  "EtMsm",
521  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
524  0);
526  "FGMsm",
528  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
531  0);
533  "EtMsm",
535  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
538  0);
540  "FGMsm",
542  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
545  0);
546 
547  // Missing Data w.r.t. Emulator
549  "MsnData",
551  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
554  0);
556  "MsnData",
558  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
561  0);
563  "MsnEmul",
565  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
568  0);
570  "MsnEmul",
572  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
575  0);
577  "EtCorrRatio",
579  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
582  0);
584  "EtCorrRatio",
586  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
589  0);
590  if (_ptype == fOnline) {
592  "SummaryvsLS",
597  0);
599  "SummaryvsLS",
603  0);
604 
613  }
614  }
615 
616  // BOOK HISTOGRAMS
617  char aux[20];
618  for (unsigned int iii = 0; iii < constants::NUM_FGBITS; iii++) {
619  sprintf(aux, "BIT%d", iii);
620  _cFGCorr_TTSubdet[iii].book(ib, _emap, _subsystem, aux);
621  }
625  if (_ptype != fOffline) { // hidefed2crate
630  }
635  if (_ptype != fOffline) { // hidefed2crate
644  }
649 
655 
656  if (_ptype == fOnline) {
659  }
660 
661  if (_ptype != fOffline) { // hidefed2crate
672  }
673 
674  // whatever has to go online only goes here
675  if (_ptype == fOnline) {
707 
708  _xEtMsm.book(_emap);
709  _xFGMsm.book(_emap);
716 
721  }
722 
723  // initialize the hash map
725 
726  // book the flag for unknown ids and the online guy as well
727  ib.setCurrentFolder(_subsystem + "/" + _name);
728  meUnknownIds1LS = ib.book1D("UnknownIds", "UnknownIds", 1, 0, 1);
729  _unknownIdsPresent = false;
731 }
732 
734  DQTask::_resetMonitors(uf);
735  switch (uf) {
736  case hcaldqm::f1LS:
737  _unknownIdsPresent = false;
738  break;
739  default:
740  break;
741  }
742 }
743 
744 /* virtual */ void TPTask::_process(edm::Event const& e, edm::EventSetup const&) {
749  if (!e.getByToken(_tokData, cdata))
750  _logger.dqmthrow("Collection HcalTrigPrimDigiCollection isn't available: " + _tagData.label() + " " +
751  _tagData.instance());
752  if (_ptype == fOnline) {
753  if (!e.getByToken(_tokDataL1Rec, cdataL1Rec))
754  _logger.dqmthrow("Collection HcalTrigPrimDigiCollection isn't available: " + _tagDataL1Rec.label() + " " +
756  }
757  if (!e.getByToken(_tokEmul, cemul))
758  _logger.dqmthrow("Collection HcalTrigPrimDigiCollection isn't available: " + _tagEmul.label() + " " +
759  _tagEmul.instance());
760  if (_ptype == fOnline) {
761  if (!e.getByToken(_tokEmulNoTDCCut, cemul_noTDCCut)) {
762  _logger.dqmthrow("Collection HcalTrigPrimDigiCollection isn't available: " + _tagEmulNoTDCCut.label() + " " +
764  }
765  }
766 
767  // extract some info per event
768  int bx = e.bunchCrossing();
769 
770  // some summaries... per event
771  int numHBHE(0), numHF(0), numCutHBHE(0), numCutHF(0);
772  int numCorrHBHE(0), numCorrHF(0);
773  int numMsmHBHE(0), numMsmHF(0);
774  int numMsnHBHE(0), numMsnHF(0), numMsnCutHBHE(0), numMsnCutHF(0);
775 
776  // for explanation see RecHit or Digi Tasks
777  uint32_t rawidHBHEValid = 0;
778  uint32_t rawidHFValid = 0;
779 
780  /*
781  * STEP1:
782  * Loop over the data digis and
783  * - do ... for all the data digis
784  * - find the emulator digi
785  * --- compare soi Et
786  * --- compare soi FG
787  * --- Do not fill anything for emulator Et!!!
788  */
789  for (HcalTrigPrimDigiCollection::const_iterator it = cdata->begin(); it != cdata->end(); ++it) {
790  // Explicit check on the DetIds present in the Collection
791  HcalTrigTowerDetId tid = it->id();
792  uint32_t rawid = _ehashmap.lookup(tid);
793  if (rawid == 0) {
794  meUnknownIds1LS->Fill(1);
795  _unknownIdsPresent = true;
796  continue;
797  }
798  HcalElectronicsId const& eid(rawid);
799  if (tid.ietaAbs() >= 29)
800  rawidHFValid = tid.rawId();
801  else
802  rawidHBHEValid = tid.rawId();
803 
804  //
805  // HF 2x3 TPs Treat theam separately and only for ONLINE!
806  //
807  if (tid.version() == 0 && tid.ietaAbs() >= 29) {
808  // do this only for online processing
809  if (_ptype == fOnline) {
812  if (jt != cemul->end())
813  _cEtCorr2x3_TTSubdet.fill(tid, it->SOI_compressedEt(), jt->SOI_compressedEt());
814  }
815 
816  // skip to the next tp digi
817  continue;
818  }
819 
820  // FROM THIS POINT, HBHE + 1x1 HF TPs
821  int soiEt_d = it->t0().compressedEt();
822  int soiFG_d[constants::NUM_FGBITS];
823  for (uint32_t ibit = 0; ibit < constants::NUM_FGBITS; ibit++)
824  soiFG_d[ibit] = it->t0().fineGrain(ibit) ? 1 : 0;
825  tid.ietaAbs() >= 29 ? numHF++ : numHBHE++;
826 
827  // fill w/o a cut
828  _cEtData_TTSubdet.fill(tid, soiEt_d);
829  _cEtData_depthlike.fill(tid, soiEt_d);
831 
832  if (_ptype == fOnline) {
833  if (tid.ietaAbs() >= 29) {
834  if (soiEt_d > 0) {
837  }
838  }
839  }
840  if (_ptype != fOffline) { // hidefed2crate
841  if (eid.isVMEid()) {
843  _cEtData_ElectronicsVME.fill(eid, soiEt_d);
844  } else {
846  _cEtData_ElectronicsuTCA.fill(eid, soiEt_d);
847  }
848  }
849 
850  // FILL w/a CUT
851  if (soiEt_d > _cutEt) {
852  tid.ietaAbs() >= 29 ? numCutHF++ : numCutHBHE++;
854  _cEtCutData_depthlike.fill(tid, soiEt_d);
855 
856  // ONLINE ONLY!
857  if (_ptype == fOnline) {
859  _cEtCutDatavsBX_TTSubdet.fill(tid, bx, soiEt_d);
860  _xDataTotal.get(eid)++;
861  }
862  // ^^^ONLINE ONLY!
863  if (_ptype != fOffline) { // hidefed2crate
864  if (eid.isVMEid())
866  else
868  }
869  }
870 
871  // FIND the EMULATOR DIGI
873  if (jt != cemul->end()) {
874  // if PRESENT!
875  int soiEt_e = jt->SOI_compressedEt();
876  int soiFG_e[constants::NUM_FGBITS];
877  for (uint32_t ibit = 0; ibit < constants::NUM_FGBITS; ibit++)
878  soiFG_e[ibit] = jt->t0().fineGrain(ibit) ? 1 : 0;
879  // if both are zeroes => set 1
880  double rEt =
881  soiEt_d == 0 && soiEt_e == 0 ? 1 : double(std::min(soiEt_d, soiEt_e)) / double(std::max(soiEt_e, soiEt_d));
882 
883  // ONLINE ONLY!
884  if (_ptype == fOnline) {
885  _xNumCorr.get(eid)++;
886  tid.ietaAbs() >= 29 ? numCorrHF++ : numCorrHBHE++;
888  _cEtCorrRatiovsBX_TTSubdet.fill(tid, bx, rEt);
889  }
890  // ^^^ONLINE ONLY!
891 
892  _cEtCorrRatio_depthlike.fill(tid, rEt);
893  _cEtCorr_TTSubdet.fill(tid, soiEt_d, soiEt_e);
894  for (uint32_t ibit = 0; ibit < constants::NUM_FGBITS; ibit++)
895  _cFGCorr_TTSubdet[ibit].fill(tid, soiFG_d[ibit], soiFG_e[ibit]);
896  // FILL w/o a CUT
897  if (_ptype != fOffline) { // hidefed2crate
898  if (eid.isVMEid()) {
900  } else {
902  }
903  }
904 
905  // if SOI Et are not equal
906  // fill mismatched
907  if (soiEt_d != soiEt_e) {
908  tid.ietaAbs() >= 29 ? numMsmHF++ : numMsmHBHE++;
909  _cEtMsm_depthlike.fill(tid);
910  if (_ptype != fOffline) { // hidefed2crate
911  if (eid.isVMEid())
913  else
915  }
916  if (_ptype == fOnline)
917  _xEtMsm.get(eid)++;
918  }
919  // if SOI FG are not equal
920  // fill mismatched.
921  // Do this comparison only for FG Bits that are commissioned
922  for (uint32_t ibit = 0; ibit < constants::NUM_FGBITS; ibit++)
923  if (soiFG_d[ibit] != soiFG_e[ibit] && _vFGBitsReady[ibit]) {
924  _cFGMsm_depthlike.fill(tid);
925  if (_ptype != fOffline) { // hidefed2crate
926  if (eid.isVMEid())
928  else
930  }
931  if (_ptype == fOnline)
932  _xFGMsm.get(eid)++;
933  }
934  } else {
935  // IF MISSING
936  _cEtCorr_TTSubdet.fill(tid, soiEt_d, -2);
938  tid.ietaAbs() >= 29 ? numMsnHF++ : numMsnHBHE++;
939  if (_ptype != fOffline) { // hidefed2crate
940  if (eid.isVMEid())
942  else
944  }
945 
946  if (soiEt_d > _cutEt) {
947  tid.ietaAbs() >= 29 ? numMsnCutHF++ : numMsnCutHBHE++;
948  if (_ptype == fOnline)
949  _xEmulMsn.get(eid)++;
950  }
951  }
952  }
953 
954  if (_ptype == fOnline) {
955  for (HcalTrigPrimDigiCollection::const_iterator it = cemul_noTDCCut->begin(); it != cemul_noTDCCut->end(); ++it) {
956  // Explicit check on the DetIds present in the Collection
957  HcalTrigTowerDetId tid = it->id();
958  uint32_t rawid = _ehashmap.lookup(tid);
959  if (rawid == 0) {
960  continue;
961  }
962  if (tid.version() == 0 && tid.ietaAbs() >= 29) {
963  continue;
964  }
965  int soiEt_e = it->SOI_compressedEt();
966  if (tid.ietaAbs() >= 29) {
967  if (soiEt_e > 0) {
970  }
971  }
972  }
973  }
974 
975  if (rawidHFValid != 0 && rawidHBHEValid != 0) {
976  // ONLINE ONLY!
977  if (_ptype == fOnline) {
978  _cOccupancyDatavsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx, numHBHE);
979  _cOccupancyDatavsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx, numHF);
980  _cOccupancyCutDatavsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx, numCutHBHE);
981  _cOccupancyCutDatavsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx, numCutHF);
986 
987  _cEtMsmvsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), _currentLS, numMsmHBHE);
988  _cEtMsmvsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), _currentLS, numMsmHF);
989  _cEtMsmvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx, numMsmHBHE);
990  _cEtMsmvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx, numMsmHF);
991 
993  HcalTrigTowerDetId(rawidHBHEValid), _currentLS, double(numMsmHBHE) / double(numCorrHBHE));
995  HcalTrigTowerDetId(rawidHFValid), _currentLS, double(numMsmHF) / double(numCorrHF));
996  _cEtMsmRatiovsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx, double(numMsmHBHE) / double(numCorrHBHE));
997  _cEtMsmRatiovsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx, double(numMsmHF) / double(numCorrHF));
998 
999  _cMsnEmulvsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), _currentLS, numMsnHBHE);
1000  _cMsnEmulvsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), _currentLS, numMsnHF);
1001  _cMsnCutEmulvsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), _currentLS, numMsnCutHBHE);
1002  _cMsnCutEmulvsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), _currentLS, numMsnCutHF);
1003 
1004  _cMsnEmulvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx, numMsnHBHE);
1005  _cMsnEmulvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx, numMsnHF);
1006  _cMsnCutEmulvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx, numMsnCutHBHE);
1007  _cMsnCutEmulvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx, numMsnCutHF);
1008  }
1009  }
1010 
1011  numHBHE = 0;
1012  numHF = 0;
1013  numCutHBHE = 0;
1014  numCutHF = 0;
1015  numMsnHBHE = 0;
1016  numMsnHF = 0;
1017  numCutHBHE = 0;
1018  numCutHF = 0;
1019 
1020  // reset
1021  rawidHBHEValid = 0;
1022  rawidHFValid = 0;
1023 
1024  /*
1025  * STEP2:
1026  * Loop over the emulator digis and
1027  * - do ... for all the emulator digis
1028  * - find data digi and
1029  * --- if found skip
1030  * --- if not found - fill the missing Data plot
1031  */
1032  for (HcalTrigPrimDigiCollection::const_iterator it = cemul->begin(); it != cemul->end(); ++it) {
1033  // Explicit check on the DetIds present in the Collection
1034  HcalTrigTowerDetId tid = it->id();
1035  uint32_t rawid = _ehashmap.lookup(tid);
1036  if (rawid == 0) {
1037  meUnknownIds1LS->Fill(1);
1038  _unknownIdsPresent = true;
1039  continue;
1040  }
1041  HcalElectronicsId const& eid(rawid);
1042  if (tid.ietaAbs() >= 29)
1043  rawidHFValid = tid.rawId();
1044  else
1045  rawidHBHEValid = tid.rawId();
1046 
1047  // HF 2x3 TPs. Only do it for Online!!!
1048  if (tid.version() == 0 && tid.ietaAbs() >= 29) {
1049  // only do this for online processing
1050  if (_ptype == fOnline)
1052  continue;
1053  }
1054  int soiEt = it->SOI_compressedEt();
1055 
1056  // FILL/INCREMENT w/o a CUT
1057  tid.ietaAbs() >= 29 ? numHF++ : numHBHE++;
1058  _cEtEmul_TTSubdet.fill(tid, soiEt);
1059  _cEtEmul_depthlike.fill(tid, soiEt);
1061  if (_ptype != fOffline) { // hidefed2crate
1062  if (eid.isVMEid()) {
1064  _cEtEmul_ElectronicsVME.fill(eid, soiEt);
1065  } else {
1067  _cEtEmul_ElectronicsuTCA.fill(eid, soiEt);
1068  }
1069  }
1070 
1071  // FILL w/ a CUT
1072  if (soiEt > _cutEt) {
1073  tid.ietaAbs() >= 29 ? numCutHF++ : numCutHBHE++;
1075  _cEtCutEmul_depthlike.fill(tid, soiEt);
1076  if (_ptype != fOffline) { // hidefed2crate
1077  if (eid.isVMEid())
1079  else
1081  }
1082 
1083  // ONLINE ONLY!
1084  if (_ptype == fOnline) {
1086  _cEtCutEmulvsBX_TTSubdet.fill(tid, bx, soiEt);
1087  _xEmulTotal.get(eid)++;
1088  }
1089  // ^^^ONLINE ONLY!
1090  }
1091 
1092  // Look for a data digi.
1093  // Do not perform if the emulated digi is zero suppressed.
1094  if (!(it->zsMarkAndPass())) {
1096  if (jt == cdata->end()) {
1097  tid.ietaAbs() >= 29 ? numMsnHF++ : numMsnHBHE++;
1098  _cEtCorr_TTSubdet.fill(tid, -2, soiEt);
1100  if (_ptype != fOffline) { // hidefed2crate
1101  if (eid.isVMEid())
1103  else
1105  }
1106  if (soiEt > _cutEt) {
1107  tid.ietaAbs() >= 29 ? numMsnCutHF++ : numMsnCutHBHE++;
1108  if (_ptype == fOnline)
1109  _xDataMsn.get(eid)++;
1110  }
1111  }
1112  }
1113  }
1114 
1115  // ONLINE ONLY!
1116  if (_ptype == fOnline) {
1117  if (rawidHBHEValid != 0) {
1118  _cOccupancyEmulvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx, numHBHE);
1119  _cOccupancyCutEmulvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx, numCutHBHE);
1121  _cOccupancyCutEmulvsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), _currentLS, numCutHBHE);
1122  _cMsnDatavsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), _currentLS, numMsnHBHE);
1123  _cMsnCutDatavsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), _currentLS, numMsnCutHBHE);
1124  _cMsnDatavsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx, numMsnHBHE);
1125  _cMsnCutDatavsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHBHEValid), bx, numMsnCutHBHE);
1126  }
1127  if (rawidHFValid != 0) {
1128  _cOccupancyEmulvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx, numHF);
1129  _cOccupancyCutEmulvsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx, numCutHF);
1132  _cMsnDatavsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), _currentLS, numMsnHF);
1133  _cMsnCutDatavsLS_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), _currentLS, numMsnCutHF);
1134  _cMsnDatavsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx, numMsnHF);
1135  _cMsnCutDatavsBX_TTSubdet.fill(HcalTrigTowerDetId(rawidHFValid), bx, numMsnCutHF);
1136  }
1137  // ^^^ONLINE ONLY!
1138  }
1139 
1140  if (_ptype == fOnline) {
1141  // Compare the sent ("uHTR") and received (L1T "layer1") TPs
1142  // This algorithm is copied from DQM/L1TMonitor/src/L1TStage2CaloLayer1.cc
1143  // ...but it turns out to be extremely useful for detecting uHTR problems
1144  _vTPDigis_SentRec.clear();
1145  ComparisonHelper::zip(cdata->begin(),
1146  cdata->end(),
1147  cdataL1Rec->begin(),
1148  cdataL1Rec->end(),
1149  std::inserter(_vTPDigis_SentRec, _vTPDigis_SentRec.begin()),
1151 
1152  for (const auto& tpPair : _vTPDigis_SentRec) {
1153  // From here, literal copy pasta from L1T
1154  const auto& sentTp = tpPair.first;
1155  const auto& recdTp = tpPair.second;
1156  const int ieta = sentTp.id().ieta();
1157  if (abs(ieta) > 28 && sentTp.id().version() != 1)
1158  continue;
1159  //const int iphi = sentTp.id().iphi();
1160  const bool towerMasked = recdTp.sample(0).raw() & (1 << 13);
1161  //const bool linkMasked = recdTp.sample(0).raw() & (1<<14);
1162  const bool linkError = recdTp.sample(0).raw() & (1 << 15);
1163 
1164  if (towerMasked || linkError) {
1165  // Do not compare if known to be bad
1166  continue;
1167  }
1168  const bool HetAgreement = sentTp.SOI_compressedEt() == recdTp.SOI_compressedEt();
1169  const bool Hfb1Agreement = sentTp.SOI_fineGrain() == recdTp.SOI_fineGrain();
1170  // Ignore minBias (FB2) bit if we receieve 0 ET, which means it is likely zero-suppressed on HCal readout side
1171  const bool Hfb2Agreement =
1172  (abs(ieta) < 29) ? true
1173  : (recdTp.SOI_compressedEt() == 0 || (sentTp.SOI_fineGrain(1) == recdTp.SOI_fineGrain(1)));
1174  if (!(HetAgreement && Hfb1Agreement && Hfb2Agreement)) {
1175  HcalTrigTowerDetId tid = sentTp.id();
1176  uint32_t rawid = _ehashmap.lookup(tid);
1177  if (rawid == 0) {
1178  continue;
1179  }
1180  HcalElectronicsId const& eid(rawid);
1181 
1184  _xSentRecL1Msm.get(eid)++;
1185  }
1186  }
1187  }
1188 }
1189 
1190 /* virtual */ void TPTask::beginLuminosityBlock(edm::LuminosityBlock const& lb, edm::EventSetup const& es) {
1191  DQTask::beginLuminosityBlock(lb, es);
1192 }
1193 
1194 /* virtual */ void TPTask::endLuminosityBlock(edm::LuminosityBlock const& lb, edm::EventSetup const& es) {
1195  if (_ptype != fOnline)
1196  return;
1197 
1198  //
1199  // GENERATE STATUS ONLY FOR ONLINE!
1200  //
1201  for (std::vector<uint32_t>::const_iterator it = _vhashFEDs.begin(); it != _vhashFEDs.end(); ++it) {
1202  flag::Flag fSum("TP");
1204 
1205  std::vector<uint32_t>::const_iterator cit = std::find(_vcdaqEids.begin(), _vcdaqEids.end(), *it);
1206  if (cit == _vcdaqEids.end()) {
1207  // not @cDAQ
1208  for (uint32_t iflag = 0; iflag < _vflags.size(); iflag++)
1209  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, int(iflag), int(flag::fNCDAQ));
1211  continue;
1212  }
1213 
1215  // FED is @cDAQ
1216  double etmsm = _xNumCorr.get(eid) > 0 ? double(_xEtMsm.get(eid)) / double(_xNumCorr.get(eid)) : 0;
1217  /*
1218  * UNUSED VARS
1219  * double dmsm = _xDataTotal.get(eid)>0?
1220  double(_xDataMsn.get(eid))/double(_xDataTotal.get(eid)):0;
1221  double emsm = _xEmulTotal.get(eid)>0?
1222  double(_xEmulMsn.get(eid))/double(_xEmulTotal.get(eid)):0;
1223  double fgmsm = _xNumCorr.get(eid)>0?
1224  double(_xFGMsm.get(eid))/double(_xNumCorr.get(eid)):0;
1225  */
1226  if (etmsm >= _thresh_EtMsmRate_high)
1227  _vflags[fEtMsm]._state = flag::fBAD;
1228  else if (etmsm >= _thresh_EtMsmRate_low)
1229  _vflags[fEtMsm]._state = flag::fPROBLEMATIC;
1230  else
1231  _vflags[fEtMsm]._state = flag::fGOOD;
1232  /*
1233  * DISABLE THESE FLAGS FOR ONLINE FOR NOW!
1234  if (dmsm>=_thresh_DataMsn)
1235  _vflags[fDataMsn]._state = flag::fBAD;
1236  else
1237  _vflags[fDataMsn]._state = flag::fGOOD;
1238  if (emsm>=_thresh_EmulMsn)
1239  _vflags[fEmulMsn]._state = flag::fBAD;
1240  else
1241  _vflags[fEmulMsn]._state = flag::fGOOD;
1242  */
1243 
1244  if (_ptype == fOnline) {
1245  if (_xSentRecL1Msm.get(eid) >= 1) {
1246  _vflags[fSentRecL1Msm]._state = flag::fBAD;
1247  } else {
1248  _vflags[fSentRecL1Msm]._state = flag::fGOOD;
1249  }
1250  }
1251  }
1252 
1253  if (_unknownIdsPresent)
1254  _vflags[fUnknownIds]._state = flag::fBAD;
1255  else
1256  _vflags[fUnknownIds]._state = flag::fGOOD;
1257 
1258  int iflag = 0;
1259  for (std::vector<flag::Flag>::iterator ft = _vflags.begin(); ft != _vflags.end(); ++ft) {
1260  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, int(iflag), ft->_state);
1261  fSum += (*ft);
1262  iflag++;
1263 
1264  // this is the MUST!
1265  // reset after using this flag
1266  ft->reset();
1267  }
1268  _cSummaryvsLS.setBinContent(eid, _currentLS, int(fSum._state));
1269  }
1270 
1271  // reset...
1272  _xEtMsm.reset();
1273  _xFGMsm.reset();
1274  _xNumCorr.reset();
1275  _xDataMsn.reset();
1276  _xDataTotal.reset();
1277  _xEmulMsn.reset();
1278  _xEmulTotal.reset();
1279 
1280  // in the end always do the DQTask::endLumi
1281  DQTask::endLuminosityBlock(lb, es);
1282 }
1283 
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, int debug=0) override
hcaldqm::ContainerProf1D _cEtCorrRatiovsBX_TTSubdet
Definition: TPTask.h:93
constexpr uint32_t rawId() const
hcaldqm::ContainerXXX< uint32_t > _xDataTotal
Definition: TPTask.h:166
T getUntrackedParameter(std::string const &, T const &) const
bool _skip1x1
Definition: TPTask.h:49
hcaldqm::ContainerProf1D _cMsnCutEmulvsBX_TTSubdet
Definition: TPTask.h:148
hcaldqm::Container2D _cMsnData_ElectronicsVME
Definition: TPTask.h:133
hcaldqm::Container1D _cEtEmul_TTSubdet
Definition: TPTask.h:68
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
hcaldqm::ContainerSingleProf2D _cEtData_depthlike
Definition: TPTask.h:83
edm::InputTag _tagData
Definition: TPTask.h:35
int const CRATE_VME_MIN
Definition: Constants.h:83
hcaldqm::ContainerProf1D _cMsnDatavsBX_TTSubdet
Definition: TPTask.h:138
double _thresh_FGMsmRate_high
Definition: TPTask.h:51
hcaldqm::ContainerSingle2D _cOccupancyCutEmul_depthlike
Definition: TPTask.h:110
hcaldqm::ContainerProf1D _cMsnDatavsLS_TTSubdet
Definition: TPTask.h:136
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
edm::InputTag _tagDataL1Rec
Definition: TPTask.h:36
void fill(HcalDetId const &) override
std::pair< uint16_t, uint16_t > fed2crate(int fed)
Definition: Utilities.cc:10
std::vector< uint32_t > _vhashFEDs
Definition: TPTask.h:56
hcaldqm::ContainerProf1D _cEtMsmvsLS_TTSubdet
Definition: TPTask.h:123
hcaldqm::Container2D _cOccupancyData_ElectronicsVME
Definition: TPTask.h:96
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
hcaldqm::ContainerProf1D _cEtCutEmulvsLS_TTSubdet
Definition: TPTask.h:73
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: TPTask.h:59
edm::EDGetTokenT< HcalTrigPrimDigiCollection > _tokData
Definition: TPTask.h:39
std::vector< std::pair< HcalTriggerPrimitiveDigi, HcalTriggerPrimitiveDigi > > _vTPDigis_SentRec
Definition: TPTask.h:174
UpdateFreq
Definition: DQTask.h:16
MonitorElement * meUnknownIds1LS
Definition: TPTask.h:161
State _state
Definition: Flag.h:62
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
std::vector< T >::const_iterator const_iterator
hcaldqm::ContainerSingleProf2D _cEtCorrRatio_depthlike
Definition: TPTask.h:91
hcaldqm::ContainerProf1D _cMsnCutDatavsBX_TTSubdet
Definition: TPTask.h:139
int bunchCrossing() const
Definition: EventBase.h:64
int _cutEt
Definition: TPTask.h:50
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:108
hcaldqm::ContainerProf1D _cMsnCutDatavsLS_TTSubdet
Definition: TPTask.h:137
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
virtual void reset()
Definition: ContainerXXX.h:292
hcaldqm::ContainerSingle2D _cOccupancyCutData_depthlike
Definition: TPTask.h:109
double _thresh_FGMsmRate_low
Definition: TPTask.h:51
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
int const FIBER_VME_MIN
Definition: Constants.h:113
hcaldqm::ContainerProf1D _cOccupancyDatavsLS_TTSubdet
Definition: TPTask.h:155
edm::EDGetTokenT< HcalTrigPrimDigiCollection > _tokEmulNoTDCCut
Definition: TPTask.h:42
edm::EDGetTokenT< HcalTrigPrimDigiCollection > _tokDataL1Rec
Definition: TPTask.h:40
hcaldqm::Container2D _cOccupancyEmul_ElectronicsVME
Definition: TPTask.h:98
hcaldqm::ContainerProf1D _cEtMsmRatiovsLS_TTSubdet
Definition: TPTask.h:124
hcaldqm::ContainerSingle2D _cOccupancyEmul2x3_depthlike
Definition: TPTask.h:114
hcaldqm::ContainerProf1D _cMsnEmulvsBX_TTSubdet
Definition: TPTask.h:147
int const FIBERCH_MIN
Definition: Constants.h:122
void Fill(long long x)
double _thresh_EtMsmRate_low
Definition: TPTask.h:51
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
hcaldqm::ContainerProf2D _cEtCorrRatio_ElectronicsuTCA
Definition: TPTask.h:90
std::vector< int > getFEDVMEList(HcalElectronicsMap const *)
Definition: Utilities.cc:101
hcaldqm::Container2D _cFGCorr_TTSubdet[hcaldqm::constants::NUM_FGBITS]
Definition: TPTask.h:71
hcaldqm::ContainerXXX< uint32_t > _xDataMsn
Definition: TPTask.h:166
hcaldqm::filter::HashFilter _filter_uTCA
Definition: TPTask.h:63
double _thresh_EmulMsn
Definition: TPTask.h:51
hcaldqm::Container2D _cSummaryvsLS_FED
Definition: TPTask.h:164
ProcessingType _ptype
Definition: DQModule.h:43
virtual void fill(uint32_t)
Definition: Container1D.cc:73
edm::InputTag _tagEmulNoTDCCut
Definition: TPTask.h:38
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
hcaldqm::Container2D _cOccupancyCutData_ElectronicsVME
Definition: TPTask.h:101
std::vector< hcaldqm::flag::Flag > _vflags
Definition: TPTask.h:45
hcaldqm::ContainerSingle1D _cEtMsm_uHTR_L1T_LS
Definition: TPTask.h:130
virtual void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *qy=new quantity::ValueQuantity(quantity::fN), int debug=0)
void reset()
Definition: Flag.h:59
void setLumiFlag()
this ME is meant to be stored for each luminosity section
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
virtual void setBinContent(int, int, int)
hcaldqm::ContainerXXX< uint32_t > _xEmulMsn
Definition: TPTask.h:166
void _resetMonitors(hcaldqm::UpdateFreq) override
Definition: TPTask.cc:733
constexpr bool isVMEid() const
void dqmthrow(std::string const &msg) const
Definition: Logger.h:12
hcaldqm::ContainerProf2D _cEtData_ElectronicsVME
Definition: TPTask.h:77
hcaldqm::ContainerProf1D _cEtMsmvsBX_TTSubdet
Definition: TPTask.h:125
int const FED_VME_MIN
Definition: Constants.h:70
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
TPTask(edm::ParameterSet const &)
Definition: TPTask.cc:6
hcaldqm::ContainerProf1D _cOccupancyDatavsBX_TTSubdet
Definition: TPTask.h:151
hcaldqm::ContainerProf2D _cEtEmul_ElectronicsuTCA
Definition: TPTask.h:80
hcaldqm::ContainerProf1D _cEtCorrRatiovsLS_TTSubdet
Definition: TPTask.h:92
hcaldqm::ContainerSingle2D _cOccupancyData2x3_depthlike
Definition: TPTask.h:113
hcaldqm::ContainerSingle2D _cFGMsm_depthlike
Definition: TPTask.h:122
hcaldqm::ContainerProf2D _cEtEmul_ElectronicsVME
Definition: TPTask.h:79
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
hcaldqm::filter::HashFilter _filter_depth0
Definition: TPTask.h:64
int const FIBER_uTCA_MIN1
Definition: Constants.h:116
hcaldqm::ContainerProf2D _cEtCorrRatio_ElectronicsVME
Definition: TPTask.h:89
hcaldqm::ContainerXXX< uint32_t > _xEtMsm
Definition: TPTask.h:166
hcaldqm::Container2D _cEtMsm_ElectronicsuTCA
Definition: TPTask.h:118
hcaldqm::Container2D _cOccupancyCutEmul_ElectronicsuTCA
Definition: TPTask.h:104
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: TPTask.cc:39
Logger _logger
Definition: DQModule.h:54
T min(T a, T b)
Definition: MathUtil.h:58
hcaldqm::ContainerSingle2D _cOccupancy_HF_depth
Definition: TPTask.h:170
double _thresh_EtMsmRate_high
Definition: TPTask.h:51
std::string _name
Definition: DQModule.h:41
hcaldqm::ContainerProf1D _cOccupancyCutDatavsLS_TTSubdet
Definition: TPTask.h:157
hcaldqm::Container2D _cOccupancyCutData_ElectronicsuTCA
Definition: TPTask.h:102
HcalElectronicsMap const * _emap
Definition: DQTask.h:59
hcaldqm::ContainerSingle2D _cSummaryvsLS
Definition: TPTask.h:165
void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0) override
int const CRATE_uTCA_MIN
Definition: Constants.h:88
hcaldqm::ContainerSingle2D _cOccupancyData_depthlike
Definition: TPTask.h:107
hcaldqm::Container2D _cOccupancyCutEmul_ElectronicsVME
Definition: TPTask.h:103
const_iterator end() const
hcaldqm::ContainerSingle2D _cEtMsm_depthlike
Definition: TPTask.h:121
hcaldqm::ContainerProf1D _cEtCutDatavsLS_TTSubdet
Definition: TPTask.h:72
hcaldqm::Container2D _cMsnData_ElectronicsuTCA
Definition: TPTask.h:134
hcaldqm::Container2D _cFGMsm_ElectronicsVME
Definition: TPTask.h:119
hcaldqm::Container2D _cMsnEmul_ElectronicsuTCA
Definition: TPTask.h:143
hcaldqm::ContainerProf1D _cOccupancyEmulvsBX_TTSubdet
Definition: TPTask.h:152
hcaldqm::ContainerXXX< uint32_t > _xEmulTotal
Definition: TPTask.h:166
double _thresh_DataMsn
Definition: TPTask.h:51
hcaldqm::ContainerXXX< uint32_t > _xSentRecL1Msm
Definition: TPTask.h:166
bool isFEDHBHE(HcalElectronicsId const &)
Definition: Utilities.cc:142
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:87
hcaldqm::Container2D _cFGMsm_ElectronicsuTCA
Definition: TPTask.h:120
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container1D.cc:592
hcaldqm::ContainerProf1D _cEtCutDatavsBX_TTSubdet
Definition: TPTask.h:74
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
int version() const
get the version code for the trigger tower
hcaldqm::ContainerSingle2D _cEtMsm_uHTR_L1T_depthlike
Definition: TPTask.h:129
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
example_stream void bookHistograms(DQMStore::IBooker &,@example_stream edm::Run const &,@example_stream edm::EventSetup const &) override
std::vector< bool > _vFGBitsReady
Definition: TPTask.h:53
hcaldqm::ContainerProf1D _cOccupancyCutEmulvsBX_TTSubdet
Definition: TPTask.h:154
hcaldqm::ContainerXXX< uint32_t > _xFGMsm
Definition: TPTask.h:166
hcaldqm::Container2D _cOccupancyEmul_ElectronicsuTCA
Definition: TPTask.h:99
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fEnergy), int debug=0) override
void setBinContent(HcalDetId const &, int) override
Definition: Container2D.cc:163
std::string const & label() const
Definition: InputTag.h:36
hcaldqm::ContainerProf1D _cOccupancyCutDatavsBX_TTSubdet
Definition: TPTask.h:153
hcaldqm::ContainerSingle1D _cOccupancyNoTDC_HF_ieta
Definition: TPTask.h:171
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
iterator find(key_type k)
hcaldqm::ContainerSingle2D _cOccupancyEmul_depthlike
Definition: TPTask.h:108
hcaldqm::Container2D _cOccupancyData_ElectronicsuTCA
Definition: TPTask.h:97
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:197
int const NUM_FGBITS
Definition: Constants.h:197
edm::EDGetTokenT< HcalTrigPrimDigiCollection > _tokEmul
Definition: TPTask.h:41
hcaldqm::ContainerProf1D _cEtCutEmulvsBX_TTSubdet
Definition: TPTask.h:75
std::vector< int > getFEDList(HcalElectronicsMap const *)
Definition: Utilities.cc:83
hcaldqm::Container2D _cEtMsm_ElectronicsVME
Definition: TPTask.h:117
T get() const
Definition: EventSetup.h:71
hcaldqm::Container2D _cEtCorr2x3_TTSubdet
Definition: TPTask.h:70
std::vector< int > getFEDuTCAList(HcalElectronicsMap const *)
Definition: Utilities.cc:121
void fill(HcalDetId const &) override
Definition: Container2D.cc:52
const HcalElectronicsMap * getHcalMapping() const
hcaldqm::Container2D _cEtCorr_TTSubdet
Definition: TPTask.h:69
virtual void initialize(FilterType ftype, hashfunctions::HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:17
std::string _subsystem
Definition: DQModule.h:48
hcaldqm::ContainerSingle2D _cOccupancyNoTDC_HF_depth
Definition: TPTask.h:170
hcaldqm::ContainerSingleProf2D _cEtEmul_depthlike
Definition: TPTask.h:84
Definition: TPTask.py:1
hcaldqm::ContainerXXX< uint32_t > _xNumCorr
Definition: TPTask.h:166
bool _unknownIdsPresent
Definition: TPTask.h:162
hcaldqm::filter::HashFilter _filter_VME
Definition: TPTask.h:62
std::vector< uint32_t > _vcdaqEids
Definition: DQTask.h:51
void _process(edm::Event const &, edm::EventSetup const &) override
Definition: TPTask.cc:744
hcaldqm::ContainerProf1D _cOccupancyEmulvsLS_TTSubdet
Definition: TPTask.h:156
hcaldqm::ContainerProf1D _cOccupancyCutEmulvsLS_TTSubdet
Definition: TPTask.h:158
virtual void fill(int, int)
virtual void initialize(hashfunctions::HashType, int debug=0)
Definition: ContainerXXX.h:81
hcaldqm::ContainerProf1D _cEtMsmRatiovsBX_TTSubdet
Definition: TPTask.h:126
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: Container2D.cc:558
edm::InputTag _tagEmul
Definition: TPTask.h:37
void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
Definition: TPTask.cc:1194
hcaldqm::ContainerSingleProf2D _cEtCutEmul_depthlike
Definition: TPTask.h:86
hcaldqm::ContainerProf2D _cEtData_ElectronicsuTCA
Definition: TPTask.h:78
hcaldqm::ContainerProf1D _cMsnEmulvsLS_TTSubdet
Definition: TPTask.h:145
void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="") override
hcaldqm::ContainerSingle1D _cOccupancy_HF_ieta
Definition: TPTask.h:171
Readout chain identification for Hcal.
void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
Definition: TPTask.cc:1190
std::string const & instance() const
Definition: InputTag.h:37
hcaldqm::ContainerSingle2D _cMsnData_depthlike
Definition: TPTask.h:135
bool isFEDHF(HcalElectronicsId const &)
Definition: Utilities.cc:156
int ietaAbs() const
get the absolute value of the tower ieta
int const SLOT_uTCA_MIN
Definition: Constants.h:95
hcaldqm::ContainerSingleProf2D _cEtCutData_depthlike
Definition: TPTask.h:85
const_iterator begin() const
Definition: Run.h:45
hcaldqm::Container1D _cEtData_TTSubdet
Definition: TPTask.h:67
ib
Definition: cuy.py:662
hcaldqm::ContainerSingle2D _cMsnEmul_depthlike
Definition: TPTask.h:144
hcaldqm::ContainerProf1D _cMsnCutEmulvsLS_TTSubdet
Definition: TPTask.h:146
hcaldqm::Container2D _cMsnEmul_ElectronicsVME
Definition: TPTask.h:142