CMS 3D CMS Logo

RecHitTask.cc
Go to the documentation of this file.
2 #include <cmath>
3 
4 using namespace hcaldqm;
5 using namespace hcaldqm::constants;
6 using namespace hcaldqm::filter;
7 
9  : DQTask(ps), hcalDbServiceToken_(esConsumes<HcalDbService, HcalDbRecord, edm::Transition::BeginRun>()) {
10  _tagHBHE = ps.getUntrackedParameter<edm::InputTag>("tagHBHE", edm::InputTag("hbhereco"));
11  _tagHO = ps.getUntrackedParameter<edm::InputTag>("tagHO", edm::InputTag("horeco"));
12  _tagHF = ps.getUntrackedParameter<edm::InputTag>("tagHF", edm::InputTag("hfreco"));
14  _hfPreRecHitsAvailable = ps.getUntrackedParameter<bool>("hfPreRecHitsAvailable", false);
15 
16  _tokHBHE = consumes<HBHERecHitCollection>(_tagHBHE);
17  _tokHO = consumes<HORecHitCollection>(_tagHO);
18  _tokHF = consumes<HFRecHitCollection>(_tagHF);
19  _tokPreHF = consumes<HFPreRecHitCollection>(_tagPreHF);
20 
21  _cutE_HBHE = ps.getUntrackedParameter<double>("cutE_HBHE", 5);
22  _cutE_HO = ps.getUntrackedParameter<double>("cutE_HO", 5);
23  _cutE_HF = ps.getUntrackedParameter<double>("cutE_HF", 5);
24  _thresh_unihf = ps.getUntrackedParameter<double>("thresh_unihf", 0.2);
25 
26  // order must be the same as in RecoFlag enum
27  _vflags.resize(nRecoFlag);
28  _vflags[fUni] = flag::Flag("UniSlotHF");
29  _vflags[fTCDS] = flag::Flag("TCDS");
30  _vflags[fUnknownIds] = flag::Flag("UnknownIds");
31 }
32 
33 /* virtual */ void RecHitTask::bookHistograms(DQMStore::IBooker& ib, edm::Run const& r, edm::EventSetup const& es) {
35 
36  // GET WHAT YOU NEED
38  _emap = dbs->getHcalMapping();
39 
40  std::vector<uint32_t> vVME;
41  std::vector<uint32_t> vuTCA;
42  vVME.push_back(
44  vuTCA.push_back(HcalElectronicsId(CRATE_uTCA_MIN, SLOT_uTCA_MIN, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
47  std::vector<uint32_t> vhashHF;
48  vhashHF.push_back(
50 
52 
53  // INITIALIZE FIRST
54  // Energy
56  "Energy",
60  0);
62  "Energy",
67  0);
68 
69  // Timing
71  "TimingCut",
75  0);
77  "TimingvsEnergy",
82  0);
83 
85  "TimingCut",
89  0);
91  "TimingCut",
96  0);
98  "TimingCutvsLS",
102  0);
103 
104  // Occupancy
106  "Occupancy",
111  0);
112 
114  "OccupancyvsLS",
118  0);
119 
121  "OccupancyCut",
126  0);
127 
130  _name,
131  "ChargeVsAsymmetry",
136  0);
138  "AsymmetryMean",
143  0);
145  "Asymmetry",
149  0);
150  }
151 
152  // INITIALIZE HISTOGRAMS to be used only in Online
153  if (_ptype == fOnline) {
155  "Energyvsieta",
159  0);
161  "Energyvsiphi",
165  0);
167  "EnergyvsLS",
171  0);
173  "EnergyvsBX",
177  0);
179  "TimingCutvsieta",
183  0);
185  "TimingCutvsiphi",
189  0);
191  "TimingCutvsBX",
195  0);
197  "Occupancyvsiphi",
201  0);
203  "Occupancyvsieta",
207  0);
209  "OccupancyCutvsiphi",
213  0);
215  "OccupancyCutvsieta",
219  0);
221  "OccupancyCutvsBX",
225  0);
227  "OccupancyCutvsiphivsLS",
232  0);
234  "OccupancyCutvsLS",
238  0);
239  }
240 
241  // FED-based plots
242  if (_ptype != fOffline) { // hidefed2crate
243  std::vector<int> vFEDs = hcaldqm::utilities::getFEDList(_emap);
244  std::vector<int> vFEDsVME = hcaldqm::utilities::getFEDVMEList(_emap);
245  std::vector<int> vFEDsuTCA = hcaldqm::utilities::getFEDuTCAList(_emap);
246 
247  // push the rawIds of each fed into the vector
248  for (std::vector<int>::const_iterator it = vFEDsVME.begin(); it != vFEDsVME.end(); ++it)
250  for (std::vector<int>::const_iterator it = vFEDsuTCA.begin(); it != vFEDsuTCA.end(); ++it) {
251  std::pair<uint16_t, uint16_t> cspair = utilities::fed2crate(*it);
252  _vhashFEDs.push_back(HcalElectronicsId(cspair.first, cspair.second, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
253  }
254 
256  "TimingCut",
261  0);
263  "TimingCut",
268  0);
270  "TimingCutvsLS",
274  0);
276  "TimingCut",
278  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
281  0);
283  "TimingCut",
285  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
288  0);
289 
291  "Occupancy",
296  0);
298  "Occupancy",
303  0);
305  "Occupancy",
307  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
310  0);
312  "Occupancy",
314  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
317  0);
318 
320  "OccupancyCut",
325  0);
327  "OccupancyCut",
332  0);
334  "OccupancyCut",
336  new hcaldqm::quantity::FEDQuantity(vFEDsVME),
339  0);
341  "OccupancyCut",
343  new hcaldqm::quantity::FEDQuantity(vFEDsuTCA),
346  0);
347  if (_ptype == fOnline) {
349  "SummaryvsLS",
354  0);
356  "SummaryvsLS",
360  0);
361 
364  }
365  }
366 
367  // BOOK HISTOGRAMS
368  char cutstr[200];
369  sprintf(cutstr, "_EHBHE%dHO%dHF%d", int(_cutE_HBHE), int(_cutE_HO), int(_cutE_HF));
370  char cutstr2[200];
371  sprintf(cutstr2, "_EHF%d", int(_cutE_HF));
372 
373  // Energy
376 
377  // Timing
380  if (_ptype != fOffline) { // hidefed2crate
385  }
389  if (_ptype != fOffline) { // hidefed2crate
391  }
392 
393  // Occupancy
395  if (_ptype != fOffline) { // hidefed2crate
400  }
403  if (_ptype != fOffline) { // hidefed2crate
408  }
409 
414  }
415 
416  // BOOK HISTOGRAMS to be used only in Online
417  if (_ptype == fOnline) {
434 
435  std::vector<uint32_t> vhashFEDHF;
436  vhashFEDHF.push_back(HcalElectronicsId(22, SLOT_uTCA_MIN, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
437  vhashFEDHF.push_back(HcalElectronicsId(29, SLOT_uTCA_MIN, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
438  vhashFEDHF.push_back(HcalElectronicsId(32, SLOT_uTCA_MIN, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
439  vhashFEDHF.push_back(HcalElectronicsId(22, SLOT_uTCA_MIN + 6, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
440  vhashFEDHF.push_back(HcalElectronicsId(29, SLOT_uTCA_MIN + 6, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
441  vhashFEDHF.push_back(HcalElectronicsId(32, SLOT_uTCA_MIN + 6, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
442  HashFilter filter_FEDHF;
444 
446  if (_ptype != fOffline) { // hidefed2crate
447  _xUniHF.book(_emap, filter_FEDHF);
448  _xUni.book(_emap);
449  }
450  }
451 
452  // initialize hash map
454 
455  // book some mes...
456  ib.setCurrentFolder(_subsystem + "/" + _name);
457  auto scope = DQMStore::IBooker::UseLumiScope(ib);
458  meUnknownIds1LS = ib.book1DD("UnknownIds", "UnknownIds", 1, 0, 1);
459  _unknownIdsPresent = false;
460 }
461 
463  switch (uf) {
464  case hcaldqm::f1LS:
465  _unknownIdsPresent = false;
466  break;
467  default:
468  break;
469  }
470 
471  DQTask::_resetMonitors(uf);
472 }
473 
474 /* virtual */ void RecHitTask::_process(edm::Event const& e, edm::EventSetup const&) {
478 
479  if (!(e.getByToken(_tokHBHE, chbhe)))
480  _logger.dqmthrow("Collection HBHERecHitCollection not available " + _tagHBHE.label() + " " + _tagHBHE.instance());
481  if (!(e.getByToken(_tokHO, cho)))
482  _logger.dqmthrow("Collection HORecHitCollection not available " + _tagHO.label() + " " + _tagHO.instance());
483  if (!(e.getByToken(_tokHF, chf)))
484  _logger.dqmthrow("Collection HFRecHitCollection not available " + _tagHF.label() + " " + _tagHF.instance());
485 
488  if (!(e.getByToken(_tokPreHF, cprehf)))
489  _logger.dqmthrow("Collection HFPreRecHitCollection not available " + _tagPreHF.label() + " " +
490  _tagPreHF.instance());
491  }
492 
493  // extract some info per event
494  int bx = e.bunchCrossing();
495 
496  auto lumiCache = luminosityBlockCache(e.getLuminosityBlock().index());
497  _currentLS = lumiCache->currentLS;
498 
499  // To fill histograms outside of the loop, you need to determine if there were
500  // any valid det ids first
501  uint32_t rawidValid = 0;
502  uint32_t rawidHBValid = 0;
503  uint32_t rawidHEValid = 0;
504 
505  double ehbm = 0;
506  double ehbp = 0;
507  double ehem = 0;
508  double ehep = 0;
509  int nChsHB = 0;
510  int nChsHE = 0;
511  int nChsHBCut = 0;
512  int nChsHECut = 0;
513  for (HBHERecHitCollection::const_iterator it = chbhe->begin(); it != chbhe->end(); ++it) {
514  double energy = it->energy();
515  double timing = it->time();
516 
517  // Explicit check on the DetIds present in the Collection
518  HcalDetId did = it->id();
519  uint32_t rawid = _ehashmap.lookup(did);
520  /*
521  * Needs to be removed as DetIds that belong to the HEP17 after combination
522  * are not present in the emap
523  * Removed until further notice!
524  *
525  */
526  //if (rawid==0)
527  //{meUnknownIds1LS->Fill(1); _unknownIdsPresent=true;continue;}
528 
529  HcalElectronicsId const& eid(rawid);
530  rawidValid = did.rawId();
531  if (did.subdet() == HcalBarrel)
532  rawidHBValid = did.rawId();
533  else if (did.subdet() == HcalEndcap)
534  rawidHEValid = did.rawId();
535 
538  _cOccupancy_depth.fill(did);
539  did.subdet() == HcalBarrel ? did.ieta() > 0 ? ehbp += energy : ehbm += energy
540  : did.ieta() > 0 ? ehep += energy
541  : ehem += energy;
542 
543  // ONLINE ONLY!
544  if (_ptype == fOnline) {
547  }
548  // ^^^ONLINE ONLY!
549  //
550  if (_ptype != fOffline) { // hidefed2crate
551  // Also, for these electronics plots, require that the channel was found in the emap.
552  if (rawid != 0) {
553  if (eid.isVMEid()) {
556  } else if (eid.isUTCAid()) {
559  }
560  }
561  }
562 
563  if (energy > _cutE_HBHE) {
564  // ONLINE ONLY!
565  if (_ptype == fOnline) {
576  }
577  // ^^^ONLINE ONLY!
578  _cEnergy_depth.fill(did, energy);
582 
583  // ONLINE
584  if (_ptype == fOnline) {
585  if (rawid != 0) {
587  }
589  // ^^^ONLINE
590  } else {
591  if (_ptype != fOffline) { // hidefed2crate
592  if (rawid != 0) {
594  }
595  }
597  }
599  if (_ptype != fOffline) { // hidefed2crate
600  if (rawid != 0) {
601  if (eid.isVMEid()) {
602  // ONLINE
603  if (_ptype == fOnline) {
606  } // ^^^ ONLINE
607  else {
610  }
611  // ^^^ONLINE
612 
615  } else if (eid.isUTCAid()) {
616  if (_ptype == fOnline) {
617  // time constraints are explicit!
620  } else {
623  }
626  }
627  }
628  }
629  did.subdet() == HcalBarrel ? nChsHBCut++ : nChsHECut++;
630  }
631  did.subdet() == HcalBarrel ? nChsHB++ : nChsHE++;
632  }
633 
634  if (rawidHBValid != 0 && rawidHEValid != 0) {
635  _cOccupancyvsLS_Subdet.fill(HcalDetId(rawidHBValid), _currentLS, nChsHB);
636  _cOccupancyvsLS_Subdet.fill(HcalDetId(rawidHEValid), _currentLS, nChsHE);
637 
638  // ONLINE ONLY!
639  if (_ptype == fOnline) {
640  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidHBValid), bx, nChsHBCut);
641  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidHEValid), bx, nChsHECut);
642  _cOccupancyCutvsLS_Subdet.fill(HcalDetId(rawidHBValid), _currentLS, nChsHBCut);
643  _cOccupancyCutvsLS_Subdet.fill(HcalDetId(rawidHEValid), _currentLS, nChsHECut);
644  }
645  // ^^^ONLINE ONLY!
646  }
647 
648  // reset
649  rawidValid = 0;
650 
651  int nChsHO = 0;
652  int nChsHOCut = 0;
653  double ehop = 0;
654  double ehom = 0;
655  for (HORecHitCollection::const_iterator it = cho->begin(); it != cho->end(); ++it) {
656  double energy = it->energy();
657  double timing = it->time();
658 
659  // Explicit check on the DetIds present in the Collection
660  HcalDetId did = it->id();
661  uint32_t rawid = _ehashmap.lookup(did);
662  if (rawid == 0) {
663  meUnknownIds1LS->Fill(1);
664  _unknownIdsPresent = true;
665  continue;
666  }
667  HcalElectronicsId const& eid(rawid);
668  if (did.subdet() == HcalOuter)
669  rawidValid = did.rawId();
670 
673  _cOccupancy_depth.fill(did);
674  did.ieta() > 0 ? ehop += energy : ehom += energy;
675 
676  // IMPORTANT: ONLINE ONLY!
677  if (_ptype == fOnline) {
680  }
681  // ONLINE ONLY!
682 
683  if (_ptype != fOffline) { // hidefed2crate
684  if (eid.isVMEid()) {
687  } else {
690  }
691  }
692 
693  if (energy > _cutE_HO) {
694  // ONLINE ONLY!
695  if (_ptype == fOnline) {
706  }
707  // ^^^ONLINE ONLY!
708 
709  _cEnergy_depth.fill(did, energy);
712  if (_ptype != fOffline) { // hidefed2crate
714  }
717  if (_ptype != fOffline) { // hidefed2crate
718  if (eid.isVMEid()) {
723  } else {
728  }
729  }
730  nChsHOCut++;
731  }
732  nChsHO++;
733  }
734 
735  if (rawidValid != 0) {
736  _cOccupancyvsLS_Subdet.fill(HcalDetId(rawidValid), _currentLS, nChsHO);
737  // ONLINE ONLY!
738  if (_ptype == fOnline) {
739  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidValid), bx, nChsHOCut);
740  _cOccupancyCutvsLS_Subdet.fill(HcalDetId(rawidValid), _currentLS, nChsHOCut);
741  }
742  // ^^^ONLINE ONLY!
743  }
744 
745  //reset
746  rawidValid = 0;
747 
748  int nChsHF = 0;
749  int nChsHFCut = 0;
750  double ehfp = 0;
751  double ehfm = 0;
752  for (HFRecHitCollection::const_iterator it = chf->begin(); it != chf->end(); ++it) {
753  double energy = it->energy();
754  double timing = it->time();
755 
756  // Explicit check on the DetIds present in the Collection
757  HcalDetId did = it->id();
758  uint32_t rawid = _ehashmap.lookup(did);
759  if (rawid == 0) {
760  meUnknownIds1LS->Fill(1);
761  _unknownIdsPresent = true;
762  continue;
763  }
764  HcalElectronicsId const& eid(rawid);
765  if (did.subdet() == HcalForward)
766  rawidValid = did.rawId();
767 
770  _cOccupancy_depth.fill(did);
771  did.ieta() > 0 ? ehfp += energy : ehfm += energy;
772 
773  // IMPORTANT:
774  // only for Online Processing
775  //
776  if (_ptype == fOnline) {
779  }
780  // ONLINE ONLY!
781 
782  if (_ptype != fOffline) { // hidefed2crate
783  if (eid.isVMEid()) {
786  } else {
789  }
790  }
791 
792  if (energy > _cutE_HF) {
793  // ONLINE ONLY!
794  if (_ptype == fOnline) {
805  if (_ptype != fOffline) { // hidefed2crate
806  _xUniHF.get(eid)++;
807  }
808  }
809  // ^^^ONLINE ONLY!
810  _cEnergy_depth.fill(did, energy);
813  if (_ptype != fOffline) { // hidefed2crate
815  }
818  if (_ptype != fOffline) { // hidefed2crate
819  if (eid.isVMEid()) {
824  } else {
829  }
830  }
831  nChsHFCut++;
832  }
833  nChsHF++;
834  }
835 
836  if (rawidValid != 0) {
837  _cOccupancyvsLS_Subdet.fill(HcalDetId(rawidValid), _currentLS, nChsHF);
838  // ONLINE ONLY!
839  if (_ptype == fOnline) {
840  _cOccupancyCutvsBX_Subdet.fill(HcalDetId(rawidValid), bx, nChsHFCut);
841  _cOccupancyCutvsLS_Subdet.fill(HcalDetId(rawidValid), _currentLS, nChsHFCut);
842  }
843  // ^^^ONLINE ONLY!
844  }
845 
846  // Loop over HFPreRecHits to get charge and charge asymmetry
848  for (HFPreRecHitCollection::const_iterator it = cprehf->begin(); it != cprehf->end(); ++it) {
849  HcalDetId did = it->id();
850  if (_filter_HF.filter(did)) {
851  continue;
852  }
853  std::pair<float, bool> chargeAsymmetry = it->chargeAsymmetry(0.);
854  std::pair<float, bool> chargeAsymmetryCut = it->chargeAsymmetry(20.);
855 
856  if (chargeAsymmetry.second) {
857  _cDAAsymmetryVsCharge_SubdetPM.fill(did, chargeAsymmetry.first, it->charge());
858  }
859  if (chargeAsymmetryCut.second) {
860  _cDAAsymmetryMean_cut_depth.fill(did, chargeAsymmetryCut.first);
861  _cDAAsymmetry_cut_SubdetPM.fill(did, chargeAsymmetryCut.first);
862  }
863  }
864  }
865 }
866 
867 std::shared_ptr<hcaldqm::Cache> RecHitTask::globalBeginLuminosityBlock(edm::LuminosityBlock const& lb,
868  edm::EventSetup const& es) const {
869  return DQTask::globalBeginLuminosityBlock(lb, es);
870 }
871 
873  if (_ptype != fOnline)
874  return;
875 
876  auto lumiCache = luminosityBlockCache(lb.index());
877  _currentLS = lumiCache->currentLS;
878 
879  //
880  // GENERATE STATUS ONLY FOR ONLINE
881  //
882  // for (std::vector<HcalGenericDetId>::const_iterator it=gids.begin();
883  // it!=gids.end(); ++it)
884  // {}
885 
886  for (uintCompactMap::const_iterator it = _xUniHF.begin(); it != _xUniHF.end(); ++it) {
887  uint32_t hash1 = it->first;
888  HcalElectronicsId eid1(hash1);
889  double x1 = it->second;
890 
891  for (uintCompactMap::const_iterator jt = _xUniHF.begin(); jt != _xUniHF.end(); ++jt) {
892  if (jt == it)
893  continue;
894  double x2 = jt->second;
895  if (x2 == 0)
896  continue;
897  if (x1 / x2 < _thresh_unihf)
898  _xUni.get(eid1)++;
899  }
900  }
901 
902  if (_ptype != fOffline) { // hidefed2crate
903  for (std::vector<uint32_t>::const_iterator it = _vhashFEDs.begin(); it != _vhashFEDs.end(); ++it) {
904  flag::Flag fSum("RECO");
906 
907  std::vector<uint32_t>::const_iterator cit = std::find(_vcdaqEids.begin(), _vcdaqEids.end(), *it);
908  if (cit == _vcdaqEids.end()) {
909  // not @cDAQ
910  for (uint32_t iflag = 0; iflag < _vflags.size(); iflag++)
913  continue;
914  }
915 
916  // FED is @cDAQ
917  if (hcaldqm::utilities::isFEDHF(eid) && (_runkeyVal == 0 || _runkeyVal == 4)) {
918  if (_xUni.get(eid) > 0)
919  _vflags[fUni]._state = flag::fPROBLEMATIC;
920  else
921  _vflags[fUni]._state = flag::fGOOD;
922  }
923 
924  if (_unknownIdsPresent)
925  _vflags[fUnknownIds]._state = flag::fBAD;
926  else
927  _vflags[fUnknownIds]._state = flag::fGOOD;
928 
929  int iflag = 0;
930  for (std::vector<flag::Flag>::iterator ft = _vflags.begin(); ft != _vflags.end(); ++ft) {
931  _cSummaryvsLS_FED.setBinContent(eid, _currentLS, int(iflag), int(ft->_state));
932  fSum += (*ft);
933  iflag++;
934 
935  // reset after using
936  ft->reset();
937  }
939  }
940  _xUniHF.reset();
941  _xUni.reset();
942  }
943 
944  // in the end always do the DQTask::endLumi
945  DQTask::globalEndLuminosityBlock(lb, es);
946 }
947 
hcaldqm::flag::Flag
Definition: Flag.h:24
hcaldqm::quantity::FEDQuantity
Definition: ElectronicsQuantity.h:356
hcaldqm::constants::FED_VME_MIN
const int FED_VME_MIN
Definition: Constants.h:82
RecHitTask::_cTimingCutvsieta_Subdet
hcaldqm::ContainerProf1D _cTimingCutvsieta_Subdet
Definition: RecHitTask.h:92
hcaldqm::ContainerXXX::initialize
virtual void initialize(hashfunctions::HashType, int debug=0)
Definition: ContainerXXX.h:81
RecHitTask::_thresh_unihf
double _thresh_unihf
Definition: RecHitTask.h:52
RecHitTask::_cOccupancyCutvsLS_Subdet
hcaldqm::ContainerProf1D _cOccupancyCutvsLS_Subdet
Definition: RecHitTask.h:111
RecHitTask::_cOccupancyCut_FEDVME
hcaldqm::Container2D _cOccupancyCut_FEDVME
Definition: RecHitTask.h:107
hcaldqm::flag::Flag::_state
State _state
Definition: Flag.h:62
RecHitTask::_cTimingCut_FEDVME
hcaldqm::ContainerProf2D _cTimingCut_FEDVME
Definition: RecHitTask.h:85
RecHitTask::_cOccupancy_FEDVME
hcaldqm::Container2D _cOccupancy_FEDVME
Definition: RecHitTask.h:98
hcaldqm::constants
Definition: Constants.h:9
hcaldqm::Container2D::initialize
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
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
RecHitTask::fTCDS
Definition: RecHitTask.h:59
hcaldqm::UpdateFreq
UpdateFreq
Definition: DQTask.h:32
RecHitTask::_cOccupancyCut_depth
hcaldqm::Container2D _cOccupancyCut_depth
Definition: RecHitTask.h:112
hcaldqm::quantity::FlagQuantity
Definition: ValueQuantity.h:374
hcaldqm::electronicsmap::ElectronicsMap::lookup
uint32_t lookup(DetId const &)
Definition: ElectronicsMap.cc:122
RecHitTask.h
bookHistograms
example_stream void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
RecHitTask::_cOccupancyvsLS_Subdet
hcaldqm::ContainerProf1D _cOccupancyvsLS_Subdet
Definition: RecHitTask.h:102
edm::InputTag::instance
std::string const & instance() const
Definition: InputTag.h:37
hcaldqm::quantity::fSlotuTCA
Definition: ElectronicsQuantity.h:21
RecHitTask::_cOccupancyCutvsieta_Subdet
hcaldqm::Container1D _cOccupancyCutvsieta_Subdet
Definition: RecHitTask.h:114
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
RecHitTask::_tagHBHE
edm::InputTag _tagHBHE
Definition: RecHitTask.h:40
edm::Run
Definition: Run.h:45
RecHitTask::_cDAAsymmetryMean_cut_depth
hcaldqm::ContainerProf2D _cDAAsymmetryMean_cut_depth
Definition: RecHitTask.h:121
hcaldqm::ContainerProf2D::book
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: ContainerProf2D.cc:47
hcaldqm::quantity::ValueQuantity
Definition: ValueQuantity.h:319
hcaldqm::hashfunctions::fElectronics
Definition: HashFunctions.h:154
RecHitTask::_xUniHF
hcaldqm::ContainerXXX< uint32_t > _xUniHF
Definition: RecHitTask.h:117
hcaldqm::quantity::fN_to8000
Definition: ValueQuantity.h:40
edm::LuminosityBlock::index
LuminosityBlockIndex index() const
Definition: LuminosityBlock.cc:28
edm
HLT enums.
Definition: AlignableModifier.h:19
testProducerWithPsetDescEmpty_cfi.x2
x2
Definition: testProducerWithPsetDescEmpty_cfi.py:28
hcaldqm::flag::fGOOD
Definition: Flag.h:17
RecHitTask::_cTimingCut_ElectronicsVME
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsVME
Definition: RecHitTask.h:87
hcaldqm
Definition: Constants.h:8
RecHitTask::_filter_HF
hcaldqm::filter::HashFilter _filter_HF
Definition: RecHitTask.h:69
RecHitTask::_cOccupancy_FEDuTCA
hcaldqm::Container2D _cOccupancy_FEDuTCA
Definition: RecHitTask.h:99
RecHitTask::_cDAAsymmetry_cut_SubdetPM
hcaldqm::Container1D _cDAAsymmetry_cut_SubdetPM
Definition: RecHitTask.h:122
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
hcaldqm::electronicsmap::ElectronicsMap::initialize
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
Definition: ElectronicsMap.cc:6
hcaldqm::hashfunctions::fSubdetPM
Definition: HashFunctions.h:136
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
hcaldqm::constants::SPIGOT_MIN
const int SPIGOT_MIN
Definition: Constants.h:120
RecHitTask::_cOccupancyCut_FEDuTCA
hcaldqm::Container2D _cOccupancyCut_FEDuTCA
Definition: RecHitTask.h:108
hcaldqm::filter::fPreserver
Definition: HashFilter.h:19
hcaldqm::constants::SLOT_uTCA_MIN
const int SLOT_uTCA_MIN
Definition: Constants.h:107
hcaldqm::constants::FIBER_uTCA_MIN1
const int FIBER_uTCA_MIN1
Definition: Constants.h:128
RecHitTask::_tokHO
edm::EDGetTokenT< HORecHitCollection > _tokHO
Definition: RecHitTask.h:46
RecHitTask::_cutE_HO
double _cutE_HO
Definition: RecHitTask.h:51
RecHitTask::_filter_uTCA
hcaldqm::filter::HashFilter _filter_uTCA
Definition: RecHitTask.h:66
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
RecHitTask::_cTimingCut_FEDuTCA
hcaldqm::ContainerProf2D _cTimingCut_FEDuTCA
Definition: RecHitTask.h:86
hcaldqm::DQModule::_runkeyVal
int _runkeyVal
Definition: DQModule.h:47
hcaldqm::hashfunctions::fFED
Definition: HashFunctions.h:145
HcalBarrel
Definition: HcalAssistant.h:33
hcaldqm::DQModule::_ptype
ProcessingType _ptype
Definition: DQModule.h:44
hcaldqm::flag::fBAD
Definition: Flag.h:19
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
RecHitTask::_cEnergyvsLS_SubdetPM
hcaldqm::ContainerProf1D _cEnergyvsLS_SubdetPM
Definition: RecHitTask.h:76
edm::Handle
Definition: AssociativeIterator.h:50
hcaldqm::hashfunctions::fdepth
Definition: HashFunctions.h:140
RecHitTask::nRecoFlag
Definition: RecHitTask.h:59
RecHitTask::_cTimingCutvsLS_SubdetPM
hcaldqm::ContainerProf1D _cTimingCutvsLS_SubdetPM
Definition: RecHitTask.h:91
hcaldqm::utilities::getFEDList
std::vector< int > getFEDList(HcalElectronicsMap const *)
Definition: Utilities.cc:97
RecHitTask::_cEnergy_depth
hcaldqm::ContainerProf2D _cEnergy_depth
Definition: RecHitTask.h:75
HcalDbService::getHcalMapping
const HcalElectronicsMap * getHcalMapping() const
Definition: HcalDbService.cc:343
RecHitTask::_cOccupancyvsiphi_SubdetPM
hcaldqm::Container1D _cOccupancyvsiphi_SubdetPM
Definition: RecHitTask.h:103
hcaldqm::hashfunctions::fFEDSlot
Definition: HashFunctions.h:147
RecHitTask::_tokPreHF
edm::EDGetTokenT< HFPreRecHitCollection > _tokPreHF
Definition: RecHitTask.h:48
RecHitTask::_cEnergyvsiphi_SubdetPM
hcaldqm::ContainerProf1D _cEnergyvsiphi_SubdetPM
Definition: RecHitTask.h:74
HcalElectronicsMap::allPrecisionId
std::vector< HcalGenericDetId > allPrecisionId() const
Definition: HcalElectronicsMap.cc:139
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
hcaldqm::quantity::fEnergy
Definition: ValueQuantity.h:13
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
hcaldqm::ContainerXXX::begin
virtual CompactMap::const_iterator begin()
Definition: ContainerXXX.h:69
RecHitTask::globalEndLuminosityBlock
void globalEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
Definition: RecHitTask.cc:872
RecHitTask::_cOccupancy_ElectronicsVME
hcaldqm::Container2D _cOccupancy_ElectronicsVME
Definition: RecHitTask.h:100
hcaldqm::quantity::fBX
Definition: ValueQuantity.h:47
hcaldqm::quantity::fieta
Definition: DetectorQuantity.h:15
RecHitTask::_cTimingCutvsiphi_SubdetPM
hcaldqm::ContainerProf1D _cTimingCutvsiphi_SubdetPM
Definition: RecHitTask.h:93
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
hcaldqm::quantity::fiphi
Definition: DetectorQuantity.h:14
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
RecHitTask::_cTimingCutvsBX_SubdetPM
hcaldqm::ContainerProf1D _cTimingCutvsBX_SubdetPM
Definition: RecHitTask.h:94
RecHitTask::_cSummaryvsLS_FED
hcaldqm::Container2D _cSummaryvsLS_FED
Definition: RecHitTask.h:129
hcaldqm::DQModule::_currentLS
int _currentLS
Definition: DQModule.h:53
hcaldqm::ContainerProf2D::initialize
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fEnergy), int debug=0) override
Definition: ContainerProf2D.cc:22
RecHitTask::_vflags
std::vector< hcaldqm::flag::Flag > _vflags
Definition: RecHitTask.h:58
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
hcaldqm::ContainerXXX::reset
virtual void reset()
Definition: ContainerXXX.h:292
RecHitTask::_tagPreHF
edm::InputTag _tagPreHF
Definition: RecHitTask.h:43
hcaldqm::constants::CRATE_uTCA_MIN
const int CRATE_uTCA_MIN
Definition: Constants.h:100
RecHitTask::fUnknownIds
Definition: RecHitTask.h:59
hcaldqm::filter::HashFilter::initialize
virtual void initialize(FilterType ftype, hashfunctions::HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:17
hcaldqm::filter::HashFilter::filter
virtual bool filter(HcalDetId const &) const
Definition: HashFilter.cc:24
hcaldqm::ContainerXXX::end
virtual CompactMap::const_iterator end()
Definition: ContainerXXX.h:70
hcaldqm::constants::FIBER_VME_MIN
const int FIBER_VME_MIN
Definition: Constants.h:125
edm::ESHandle< HcalDbService >
HcalElectronicsId
Readout chain identification for Hcal.
Definition: HcalElectronicsId.h:32
hcaldqm::DQModule::_name
std::string _name
Definition: DQModule.h:42
RecHitTask::_cSummaryvsLS
hcaldqm::ContainerSingle2D _cSummaryvsLS
Definition: RecHitTask.h:130
HcalOuter
Definition: HcalAssistant.h:35
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
hcaldqm::constants::FIBERCH_MIN
const int FIBERCH_MIN
Definition: Constants.h:134
hcaldqm::hashfunctions::fSubdet
Definition: HashFunctions.h:132
hcaldqm::hashfunctions::hash_did
const hash_function_did hash_did[nHashType_did]
Definition: HashFunctions.h:176
hcaldqm::quantity::DetectorQuantity
Definition: DetectorQuantity.h:59
hcaldqm::utilities::isFEDHF
bool isFEDHF(HcalElectronicsId const &)
Definition: Utilities.cc:170
RecHitTask::_cOccupancyCut_ElectronicsVME
hcaldqm::Container2D _cOccupancyCut_ElectronicsVME
Definition: RecHitTask.h:109
hcaldqm::Container2D::setBinContent
void setBinContent(HcalDetId const &, int) override
Definition: Container2D.cc:163
RecHitTask::meUnknownIds1LS
MonitorElement * meUnknownIds1LS
Definition: RecHitTask.h:125
hcaldqm::quantity::fN
Definition: ValueQuantity.h:11
RecHitTask::_tokHBHE
edm::EDGetTokenT< HBHERecHitCollection > _tokHBHE
Definition: RecHitTask.h:45
hcaldqm::filter::HashFilter
Definition: HashFilter.h:21
Logger::dqmthrow
void dqmthrow(std::string const &msg) const
Definition: Logger.h:12
RecHitTask::_cutE_HBHE
double _cutE_HBHE
Definition: RecHitTask.h:51
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
hcaldqm::quantity::fQIE10fC_400000
Definition: ValueQuantity.h:50
edm::ParameterSet
Definition: ParameterSet.h:47
edm::Transition
Transition
Definition: Transition.h:12
hcaldqm::Container2D::book
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: Container2D.cc:567
hcaldqm::quantity::fTiming_ns
Definition: ValueQuantity.h:14
hcaldqm::Container2D::fill
void fill(HcalDetId const &) override
Definition: Container2D.cc:52
hcaldqm::Container1D::fill
virtual void fill(uint32_t)
Definition: Container1D.cc:73
RecHitTask::_cEnergyvsBX_SubdetPM
hcaldqm::ContainerProf1D _cEnergyvsBX_SubdetPM
Definition: RecHitTask.h:77
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
hcaldqm::flag::Flag::reset
void reset()
Definition: Flag.h:59
RecHitTask::_cTimingCut_ElectronicsuTCA
hcaldqm::ContainerProf2D _cTimingCut_ElectronicsuTCA
Definition: RecHitTask.h:88
hcaldqm::DQModule::_logger
Logger _logger
Definition: DQModule.h:55
HcalDetId::subdet
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
RecHitTask::_cTimingCut_HBHEPartition
hcaldqm::Container1D _cTimingCut_HBHEPartition
Definition: RecHitTask.h:84
HcalDetId
Definition: HcalDetId.h:12
RecHitTask::_cOccupancyCutvsBX_Subdet
hcaldqm::ContainerProf1D _cOccupancyCutvsBX_Subdet
Definition: RecHitTask.h:115
RecHitTask::_cOccupancyCutvsiphivsLS_SubdetPM
hcaldqm::Container2D _cOccupancyCutvsiphivsLS_SubdetPM
Definition: RecHitTask.h:116
runTauDisplay.eid
eid
Definition: runTauDisplay.py:298
RecHitTask::_cOccupancyvsieta_Subdet
hcaldqm::Container1D _cOccupancyvsieta_Subdet
Definition: RecHitTask.h:104
RecHitTask::_hfPreRecHitsAvailable
bool _hfPreRecHitsAvailable
Definition: RecHitTask.h:44
hcaldqm::quantity::fDualAnodeAsymmetry
Definition: ValueQuantity.h:60
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
RecHitTask::_cOccupancy_depth
hcaldqm::Container2D _cOccupancy_depth
Definition: RecHitTask.h:97
dqm::implementation::IBooker::UseLumiScope
UseScope< MonitorElementData::Scope::LUMI > UseLumiScope
Definition: DQMStore.h:463
cuy.ib
ib
Definition: cuy.py:661
edm::EventSetup
Definition: EventSetup.h:58
hcaldqm::quantity::fSpigot
Definition: ElectronicsQuantity.h:23
hcaldqm::quantity::fEnergy_1TeV
Definition: ValueQuantity.h:48
RecHitTask::_ehashmap
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: RecHitTask.h:62
hcaldqm::f1LS
Definition: DQTask.h:32
RecHitTask::_filter_VME
hcaldqm::filter::HashFilter _filter_VME
Definition: RecHitTask.h:65
RecHitTask::_cOccupancy_ElectronicsuTCA
hcaldqm::Container2D _cOccupancy_ElectronicsuTCA
Definition: RecHitTask.h:101
hcaldqm::DQTask::_vcdaqEids
std::vector< uint32_t > _vcdaqEids
Definition: DQTask.h:69
hcaldqm::DQModule::_subsystem
std::string _subsystem
Definition: DQModule.h:49
RecHitTask::hcalDbServiceToken_
edm::ESGetToken< HcalDbService, HcalDbRecord > hcalDbServiceToken_
Definition: RecHitTask.h:49
alignCSCRings.r
r
Definition: alignCSCRings.py:93
RecHitTask::_cOccupancyCutvsiphi_SubdetPM
hcaldqm::Container1D _cOccupancyCutvsiphi_SubdetPM
Definition: RecHitTask.h:113
hcaldqm::ContainerProf2D::fill
void fill(HcalDetId const &) override
Definition: ContainerProf2D.cc:228
HcalForward
Definition: HcalAssistant.h:36
hcaldqm::flag::fPROBLEMATIC
Definition: Flag.h:18
hcaldqm::DQModule::_maxLS
int _maxLS
Definition: DQModule.h:54
hcaldqm::quantity::ElectronicsQuantity
Definition: ElectronicsQuantity.h:333
HcalDbService
Definition: HcalDbService.h:23
hcaldqm::ContainerProf1D::initialize
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, int debug=0) override
Definition: ContainerProf1D.cc:22
ecalMatacq_cfi.timing
timing
Definition: ecalMatacq_cfi.py:26
RecHitTask::_tagHO
edm::InputTag _tagHO
Definition: RecHitTask.h:41
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
RecHitTask::_cEnergy_Subdet
hcaldqm::Container1D _cEnergy_Subdet
Definition: RecHitTask.h:72
RecHitTask::_cTimingCut_SubdetPM
hcaldqm::Container1D _cTimingCut_SubdetPM
Definition: RecHitTask.h:83
hcaldqm::electronicsmap::fD2EHashMap
Definition: ElectronicsMap.h:25
RecHitTask::fUni
Definition: RecHitTask.h:59
HcalEndcap
Definition: HcalAssistant.h:34
hcaldqm::quantity::fFiberuTCAFiberCh
Definition: ElectronicsQuantity.h:31
RecHitTask::_tokHF
edm::EDGetTokenT< HFRecHitCollection > _tokHF
Definition: RecHitTask.h:47
hcaldqm::hashfunctions::fHBHEPartition
Definition: HashFunctions.h:142
nanoDQM_cff.Flag
Flag
Definition: nanoDQM_cff.py:98
RecHitTask::_process
void _process(edm::Event const &, edm::EventSetup const &) override
Definition: RecHitTask.cc:474
hcaldqm::ContainerSingle2D::setBinContent
virtual void setBinContent(int, int, int)
Definition: ContainerSingle2D.cc:154
RecHitTask::_cDAAsymmetryVsCharge_SubdetPM
hcaldqm::Container2D _cDAAsymmetryVsCharge_SubdetPM
Definition: RecHitTask.h:120
RecHitTask::_cutE_HF
double _cutE_HF
Definition: RecHitTask.h:51
RecHitTask
Definition: RecHitTask.py:1
HcalElectronicsId::rawId
constexpr uint32_t rawId() const
Definition: HcalElectronicsId.h:59
hcaldqm::quantity::fFiberVMEFiberCh
Definition: ElectronicsQuantity.h:32
hcaldqm::DQTask::_emap
const HcalElectronicsMap * _emap
Definition: DQTask.h:81
RecHitTask::_cEnergyvsieta_Subdet
hcaldqm::ContainerProf1D _cEnergyvsieta_Subdet
Definition: RecHitTask.h:73
hcaldqm::ContainerSingle2D::book
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
Definition: ContainerSingle2D.cc:68
hcaldqm::utilities::fed2crate
std::pair< uint16_t, uint16_t > fed2crate(int fed)
Definition: Utilities.cc:10
RecHitTask::globalBeginLuminosityBlock
std::shared_ptr< hcaldqm::Cache > globalBeginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) const override
Definition: RecHitTask.cc:867
hcaldqm::utilities::getFEDVMEList
std::vector< int > getFEDVMEList(HcalElectronicsMap const *)
Definition: Utilities.cc:115
hcaldqm::ContainerXXX::book
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:87
RecHitTask::_vhashFEDs
std::vector< uint32_t > _vhashFEDs
Definition: RecHitTask.h:55
hcaldqm::ContainerXXX::get
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:197
RecHitTask::_unknownIdsPresent
bool _unknownIdsPresent
Definition: RecHitTask.h:126
dqm::implementation::IBooker
Definition: DQMStore.h:43
hcaldqm::DQTask
Definition: DQTask.h:33
HcalDbRecord
Definition: HcalDbRecord.h:30
hcaldqm::ContainerSingle2D::initialize
virtual void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0)
Definition: ContainerSingle2D.cc:46
hcaldqm::Container1D::initialize
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
RecHitTask::_resetMonitors
void _resetMonitors(hcaldqm::UpdateFreq) override
Definition: RecHitTask.cc:462
hcaldqm::ContainerProf1D::book
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: ContainerProf1D.cc:40
hcaldqm::flag::fNCDAQ
Definition: Flag.h:15
hcaldqm::fOnline
Definition: DQModule.h:26
hcaldqm::quantity::fState
Definition: ValueQuantity.h:49
RecHitTask::_cTimingvsEnergy_SubdetPM
hcaldqm::Container2D _cTimingvsEnergy_SubdetPM
Definition: RecHitTask.h:80
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
edm::Event
Definition: Event.h:73
hcaldqm::utilities::getFEDuTCAList
std::vector< int > getFEDuTCAList(HcalElectronicsMap const *)
Definition: Utilities.cc:135
edm::InputTag
Definition: InputTag.h:15
hcaldqm::constants::CRATE_VME_MIN
const int CRATE_VME_MIN
Definition: Constants.h:95
RecHitTask::_gids
std::vector< HcalGenericDetId > _gids
Definition: RecHitTask.h:128
hcaldqm::filter::fFilter
Definition: HashFilter.h:19
hcaldqm::Container1D::book
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container1D.cc:592
RecHitTask::_cTimingCut_depth
hcaldqm::ContainerProf2D _cTimingCut_depth
Definition: RecHitTask.h:89
hcaldqm::filter
Definition: HashFilter.h:18
RecHitTask::_xUni
hcaldqm::ContainerXXX< uint32_t > _xUni
Definition: RecHitTask.h:117
RecHitTask::_cTimingCutvsLS_FED
hcaldqm::ContainerProf1D _cTimingCutvsLS_FED
Definition: RecHitTask.h:90
RecHitTask::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: RecHitTask.cc:33
RecHitTask::_tagHF
edm::InputTag _tagHF
Definition: RecHitTask.h:42
hcaldqm::fOffline
Definition: DQModule.h:26
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
RecHitTask::_cOccupancyCut_ElectronicsuTCA
hcaldqm::Container2D _cOccupancyCut_ElectronicsuTCA
Definition: RecHitTask.h:110
hcaldqm::quantity::LumiSection
Definition: ValueQuantity.h:400
RecHitTask::RecHitTask
RecHitTask(edm::ParameterSet const &)
Definition: RecHitTask.cc:8