CMS 3D CMS Logo

PFRecHitQTests.h
Go to the documentation of this file.
1 #ifndef RecoParticleFlow_PFClusterProducer_PFEcalRecHitQTests_h
2 #define RecoParticleFlow_PFClusterProducer_PFEcalRecHitQTests_h
3 
4 #include <memory>
12 
13 #include <iostream>
14 
15 //
16 // Quality test that checks threshold
17 //
19 public:
21 
23  : PFRecHitQTestBase(iConfig), threshold_(iConfig.getParameter<double>("threshold")) {}
24 
25  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {}
26 
27  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override {
28  return fullReadOut or pass(hit);
29  }
30  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override { return pass(hit); }
31 
32  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override { return pass(hit); }
33  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override { return pass(hit); }
34 
35  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override { return pass(hit); }
36 
37  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return pass(hit); }
38 
39 protected:
40  double threshold_;
41 
42  bool pass(const reco::PFRecHit& hit) { return hit.energy() > threshold_; }
43 };
44 
45 //
46 // Quality test that checks threshold read from the DB
47 //
49 public:
51 
53  : PFRecHitQTestBase(iConfig),
54  applySelectionsToAllCrystals_(iConfig.getParameter<bool>("applySelectionsToAllCrystals")),
55  eventSetup_(nullptr) {}
56 
57  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override { eventSetup_ = &iSetup; }
58 
59  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override {
61  return pass(hit);
62  return fullReadOut or pass(hit);
63  }
64  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override { return pass(hit); }
65 
66  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override { return pass(hit); }
67  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override { return pass(hit); }
68 
69  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override { return pass(hit); }
70 
71  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return pass(hit); }
72 
73 protected:
76 
77  bool pass(const reco::PFRecHit& hit) {
79  (*eventSetup_).get<EcalPFRecHitThresholdsRcd>().get(ths);
80 
81  float threshold = (*ths)[hit.detId()];
82  return hit.energy() > threshold;
83  }
84 };
85 
86 //
87 // Quality test that checks kHCAL Severity
88 //
90 public:
92 
94  thresholds_ = iConfig.getParameter<std::vector<int> >("maxSeverities");
95  cleanThresholds_ = iConfig.getParameter<std::vector<double> >("cleaningThresholds");
96  std::vector<std::string> flags = iConfig.getParameter<std::vector<std::string> >("flags");
97  for (auto& flag : flags) {
98  if (flag == "Standard") {
99  flags_.push_back(-1);
100  depths_.push_back(-1);
101  } else if (flag == "HFInTime") {
103  depths_.push_back(-1);
104  } else if (flag == "HFDigi") {
105  flags_.push_back(1 << HcalCaloFlagLabels::HFDigiTime);
106  depths_.push_back(-1);
107  } else if (flag == "HFLong") {
108  flags_.push_back(1 << HcalCaloFlagLabels::HFLongShort);
109  depths_.push_back(1);
110  } else if (flag == "HFShort") {
111  flags_.push_back(1 << HcalCaloFlagLabels::HFLongShort);
112  depths_.push_back(2);
113  } else {
114  flags_.push_back(-1);
115  depths_.push_back(-1);
116  }
117  }
118  }
119 
120  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {
122  iSetup.get<HcalRecNumberingRecord>().get(topo);
123  theHcalTopology_ = topo.product();
125  iSetup.get<HcalChannelQualityRcd>().get("withTopo", hcalChStatus);
126  theHcalChStatus_ = hcalChStatus.product();
127  edm::ESHandle<HcalSeverityLevelComputer> hcalSevLvlComputerHndl;
128  iSetup.get<HcalSeverityLevelComputerRcd>().get(hcalSevLvlComputerHndl);
129  hcalSevLvlComputer_ = hcalSevLvlComputerHndl.product();
130  }
131 
132  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override { return true; }
133  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override {
134  return test(rh.detid(), rh.energy(), rh.flags(), clean);
135  }
136 
137  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override {
138  return test(rh.detid(), rh.energy(), rh.flags(), clean);
139  }
140  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override {
141  return test(rh.detid(), rh.energy(), rh.flags(), clean);
142  }
143 
144  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override { return true; }
145 
146  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return true; }
147 
148 protected:
149  std::vector<int> thresholds_;
150  std::vector<double> cleanThresholds_;
151  std::vector<int> flags_;
152  std::vector<int> depths_;
156 
157  bool test(unsigned aDETID, double energy, int flags, bool& clean) {
158  HcalDetId detid = (HcalDetId)aDETID;
159  if (theHcalTopology_->getMergePositionFlag() and detid.subdet() == HcalEndcap) {
160  detid = theHcalTopology_->idFront(detid);
161  }
162 
163  const HcalChannelStatus* theStatus = theHcalChStatus_->getValues(detid);
164  unsigned theStatusValue = theStatus->getValue();
165  // Now get severity of problems for the given detID, based on the rechit flag word and the channel quality status value
166  for (unsigned int i = 0; i < thresholds_.size(); ++i) {
167  int hitSeverity = 0;
168  if (energy < cleanThresholds_[i])
169  continue;
170 
171  if (flags_[i] < 0) {
172  hitSeverity = hcalSevLvlComputer_->getSeverityLevel(detid, flags, theStatusValue);
173  } else {
174  hitSeverity = hcalSevLvlComputer_->getSeverityLevel(detid, flags & flags_[i], theStatusValue);
175  }
176 
177  if (hitSeverity > thresholds_[i] and ((depths_[i] < 0 or (depths_[i] == detid.depth())))) {
178  clean = true;
179  return false;
180  }
181  }
182  return true;
183  }
184 };
185 
186 //
187 // Quality test that applies threshold and timing as a function of depth
188 //
190 public:
192 
194  std::vector<edm::ParameterSet> psets = iConfig.getParameter<std::vector<edm::ParameterSet> >("cuts");
195  for (auto& pset : psets) {
196  depths_.push_back(pset.getParameter<int>("depth"));
197  minTimes_.push_back(pset.getParameter<double>("minTime"));
198  maxTimes_.push_back(pset.getParameter<double>("maxTime"));
199  thresholds_.push_back(pset.getParameter<double>("threshold"));
200  }
201  }
202 
203  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {}
204 
205  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override { return true; }
206  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override {
207  return test(rh.detid(), rh.energy(), rh.time(), clean);
208  }
209 
210  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override {
211  return test(rh.detid(), rh.energy(), rh.time(), clean);
212  }
213  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override {
214  return test(rh.detid(), rh.energy(), rh.time(), clean);
215  }
216 
217  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override { return true; }
218 
219  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return true; }
220 
221 protected:
222  std::vector<int> depths_;
223  std::vector<double> minTimes_;
224  std::vector<double> maxTimes_;
225  std::vector<double> thresholds_;
226 
227  bool test(unsigned aDETID, double energy, double time, bool& clean) {
228  HcalDetId detid(aDETID);
229  for (unsigned int i = 0; i < depths_.size(); ++i) {
230  if (detid.depth() == depths_[i]) {
231  if ((time < minTimes_[i] or time > maxTimes_[i]) and energy > thresholds_[i]) {
232  clean = true;
233  return false;
234  }
235  break;
236  }
237  }
238  return true;
239  }
240 };
241 
242 //
243 // Quality test that applies threshold as a function of depth
244 //
246 public:
248 
250  std::vector<edm::ParameterSet> psets = iConfig.getParameter<std::vector<edm::ParameterSet> >("cuts");
251  for (auto& pset : psets) {
252  depths_ = pset.getParameter<std::vector<int> >("depth");
253  thresholds_ = pset.getParameter<std::vector<double> >("threshold");
254  detector_ = pset.getParameter<int>("detectorEnum");
255  if (thresholds_.size() != depths_.size()) {
256  throw cms::Exception("InvalidPFRecHitThreshold") << "PFRecHitThreshold mismatch with the numbers of depths";
257  }
258  }
259  }
260 
261  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {}
262 
263  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override { return true; }
264  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override {
265  return test(rh.detid(), rh.energy(), rh.time(), clean);
266  }
267 
268  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override {
269  return test(rh.detid(), rh.energy(), rh.time(), clean);
270  }
271  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override {
272  return test(rh.detid(), rh.energy(), rh.time(), clean);
273  }
274 
275  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override { return true; }
276 
277  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return true; }
278 
279 protected:
280  std::vector<int> depths_;
281  std::vector<double> thresholds_;
283 
284  bool test(unsigned aDETID, double energy, double time, bool& clean) {
285  HcalDetId detid(aDETID);
286 
287  for (unsigned int i = 0; i < thresholds_.size(); ++i) {
288  if (detid.depth() == depths_[i] && detid.subdet() == detector_) {
289  if (energy < thresholds_[i]) {
290  clean = false;
291  return false;
292  }
293  break;
294  }
295  }
296  return true;
297  }
298 };
299 
300 //
301 // Quality test that checks HO threshold applying different threshold in rings
302 //
304 public:
306 
308  : PFRecHitQTestBase(iConfig),
309  threshold0_(iConfig.getParameter<double>("threshold_ring0")),
310  threshold12_(iConfig.getParameter<double>("threshold_ring12")) {}
311 
312  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {}
313 
314  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override { return true; }
315 
316  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override { return true; }
317 
318  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override { return true; }
319 
320  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override {
321  HcalDetId detid(rh.detid());
322  if (abs(detid.ieta()) <= 4 and hit.energy() > threshold0_)
323  return true;
324  if (abs(detid.ieta()) > 4 and hit.energy() > threshold12_)
325  return true;
326 
327  return false;
328  }
329 
330  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override { return true; }
331 
332  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return true; }
333 
334 protected:
335  const double threshold0_;
336  const double threshold12_;
337 };
338 
339 //
340 // Quality test that checks threshold as a function of ECAL eta-ring
341 //
347 public:
349 
351  : PFRecHitQTestBase(iConfig),
352  thresholds_(iConfig.getParameter<std::vector<double> >("thresholds")),
353  applySelectionsToAllCrystals_(iConfig.getParameter<bool>("applySelectionsToAllCrystals")) {
355  throw edm::Exception(edm::errors::Configuration, "ValueError")
356  << "thresholds is expected to have " << EcalRingCalibrationTools::N_RING_TOTAL << " elements but has "
357  << thresholds_.size();
358  }
359 
360  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {
362  iSetup.get<CaloGeometryRecord>().get(pG);
364  endcapGeometrySet_ = false;
365  if (endcapGeometry) {
367  endcapGeometrySet_ = true;
368  }
369  }
370 
371  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override {
373  return pass(hit);
374  else
375  return fullReadOut or pass(hit);
376  }
377  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override { return true; }
378 
379  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override { return true; }
380  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override { return true; }
381 
382  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override { return true; }
383 
384  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return true; }
385 
386 protected:
387  const std::vector<double> thresholds_;
389 
390  // apply selections to all crystals
392 
393  bool pass(const reco::PFRecHit& hit) {
394  DetId detId(hit.detId());
395 
396  // this is to skip endcap ZS for Phase2 until there is a defined geometry
397  // apply the loosest ZS threshold, for the first eta-ring in EB
398  if (not endcapGeometrySet_) {
399  // there is only ECAL EB in Phase 2
400  if (detId.subdetId() != EcalBarrel)
401  return true;
402 
403  // 0-169: EB eta-rings
404  // 170-208: EE- eta rings
405  // 209-247: EE+ eta rings
406  int firstEBRing = 0;
407  return (hit.energy() > thresholds_[firstEBRing]);
408  }
409 
410  int iring = EcalRingCalibrationTools::getRingIndex(detId);
411  if (hit.energy() > thresholds_[iring])
412  return true;
413 
414  return false;
415  }
416 };
417 
418 //
419 // Quality test that checks ecal quality cuts
420 //
422 public:
424 
426  : PFRecHitQTestBase(iConfig),
427  thresholdCleaning_(iConfig.getParameter<double>("cleaningThreshold")),
428  timingCleaning_(iConfig.getParameter<bool>("timingCleaning")),
429  topologicalCleaning_(iConfig.getParameter<bool>("topologicalCleaning")),
430  skipTTRecoveredHits_(iConfig.getParameter<bool>("skipTTRecoveredHits")) {}
431 
432  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {}
433 
434  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override {
436  clean = true;
437  return false;
438  }
440  clean = true;
441  return false;
442  }
443 
445  clean = true;
446  return false;
447  }
448 
449  return true;
450  }
451 
452  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override { return true; }
453 
454  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override { return true; }
455 
456  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override { return true; }
457 
458  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override { return true; }
459 
460  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return true; }
461 
462 protected:
467 };
468 
469 //
470 // Quality test that checks ES quality cuts
471 //
473 public:
475 
477  : PFRecHitQTestBase(iConfig),
478  thresholdCleaning_(iConfig.getParameter<double>("cleaningThreshold")),
479  topologicalCleaning_(iConfig.getParameter<bool>("topologicalCleaning")) {}
480 
481  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {}
482 
483  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override {
484  if (rh.energy() < thresholdCleaning_) {
485  clean = false;
486  return false;
487  }
488 
489  if (topologicalCleaning_ and
494  clean = false;
495  return false;
496  }
497 
498  return true;
499  }
500 
501  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override { return true; }
502 
503  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override { return true; }
504 
505  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override { return true; }
506 
507  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override { return true; }
508 
509  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return true; }
510 
511 protected:
512  const double thresholdCleaning_;
514 };
515 
516 //
517 // Quality test that calibrates tower 29 of HCAL
518 //
520 public:
522 
524  : PFRecHitQTestBase(iConfig), calibFactor_(iConfig.getParameter<double>("calibFactor")) {}
525 
526  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {}
527 
528  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override { return true; }
529  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override {
530  HcalDetId detId(hit.detId());
531  if (abs(detId.ieta()) == 29)
532  hit.setEnergy(hit.energy() * calibFactor_);
533  return true;
534  }
535 
536  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override { return true; }
537  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override { return true; }
538 
539  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override {
540  CaloTowerDetId detId(hit.detId());
541  if (detId.ietaAbs() == 29)
542  hit.setEnergy(hit.energy() * calibFactor_);
543  return true;
544  }
545 
546  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return true; }
547 
548 protected:
549  const float calibFactor_;
550 };
551 
553 public:
555 
557  : PFRecHitQTestBase(iConfig),
558  recHitEnergy_keV_(iConfig.getParameter<bool>("recHitEnergyIs_keV")),
559  threshold_(iConfig.getParameter<double>("thresholdInMIPs")),
560  mip_(iConfig.getParameter<double>("mipValueInkeV")),
561  recHitEnergyMultiplier_(iConfig.getParameter<double>("recHitEnergyMultiplier")) {}
562 
563  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {}
564 
565  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override {
566  throw cms::Exception("WrongDetector") << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
567  return false;
568  }
569  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override {
570  throw cms::Exception("WrongDetector") << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
571  return false;
572  }
573 
574  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override {
575  throw cms::Exception("WrongDetector") << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
576  return false;
577  }
578  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override {
579  throw cms::Exception("WrongDetector") << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
580  return false;
581  }
582 
583  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override {
584  throw cms::Exception("WrongDetector") << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
585  return false;
586  }
587 
588  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override {
589  const double newE =
591  hit.setEnergy(newE);
592  return pass(hit);
593  }
594 
595 protected:
596  const bool recHitEnergy_keV_;
598 
599  bool pass(const reco::PFRecHit& hit) {
600  const double hitValueInMIPs = 1e6 * hit.energy() / mip_;
601  return hitValueInMIPs > threshold_;
602  }
603 };
604 
607 public:
610 
612  : PFRecHitQTestBase(iConfig),
613  geometryInstance_(iConfig.getParameter<std::string>("geometryInstance")),
614  recHitEnergy_keV_(iConfig.getParameter<bool>("recHitEnergyIs_keV")),
615  threshold_(iConfig.getParameter<double>("thresholdInMIPs")),
616  mip_(iConfig.getParameter<double>("mipValueInkeV")),
617  recHitEnergyMultiplier_(iConfig.getParameter<double>("recHitEnergyMultiplier")) {}
618 
619  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {
621  iSetup.get<IdealGeometryRecord>().get(geometryInstance_, geoHandle);
622  ddd_ = &(geoHandle->topology().dddConstants());
623  }
624 
625  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override {
626  throw cms::Exception("WrongDetector") << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
627  return false;
628  }
629  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override {
630  throw cms::Exception("WrongDetector") << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
631  return false;
632  }
633 
634  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override {
635  throw cms::Exception("WrongDetector") << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
636  return false;
637  }
638  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override {
639  throw cms::Exception("WrongDetector") << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
640  return false;
641  }
642 
643  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override {
644  throw cms::Exception("WrongDetector") << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
645  return false;
646  }
647 
648  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override {
649  const double newE =
651  const int wafer = HGCalDetId(rh.detid()).wafer();
652  const float mult = (float)ddd_->waferTypeL(wafer); // 1 for 100um, 2 for 200um, 3 for 300um
653  hit.setEnergy(newE);
654  return pass(hit, mult);
655  }
656 
657 protected:
659  const bool recHitEnergy_keV_;
662 
663  bool pass(const reco::PFRecHit& hit, const float mult) {
664  const double hitValueInMIPs = 1e6 * hit.energy() / (mult * mip_);
665  return hitValueInMIPs > threshold_;
666  }
667 };
668 
670 public:
672 
674  : PFRecHitQTestBase(iConfig), thresholdSNR_(iConfig.getParameter<double>("thresholdSNR")) {}
675 
676  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {}
677 
678  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override {
679  throw cms::Exception("WrongDetector") << "PFRecHitQTestHGCalThresholdSNR only works for HGCAL!";
680  return false;
681  }
682  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override {
683  throw cms::Exception("WrongDetector") << "PFRecHitQTestHGCalThresholdSNR only works for HGCAL!";
684  return false;
685  }
686 
687  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override {
688  throw cms::Exception("WrongDetector") << "PFRecHitQTestHGCalThresholdSNR only works for HGCAL!";
689  return false;
690  }
691  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override {
692  throw cms::Exception("WrongDetector") << "PFRecHitQTestHGCalThresholdSNR only works for HGCAL!";
693  return false;
694  }
695 
696  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override {
697  throw cms::Exception("WrongDetector") << "PFRecHitQTestHGCalThresholdSNR only works for HGCAL!";
698  return false;
699  }
700 
701  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override {
702  return rh.signalOverSigmaNoise() >= thresholdSNR_;
703  }
704 
705 protected:
706  const double thresholdSNR_;
707 };
708 
709 // M.G. Quality test that checks seeding threshold read from the DB
710 //
712 public:
714  : PFRecHitQTestBase(iConfig),
715  applySelectionsToAllCrystals_(iConfig.getParameter<bool>("applySelectionsToAllCrystals")) {}
716 
717  void beginEvent(const edm::Event& event, const edm::EventSetup& iSetup) override {
719  }
720 
721  bool test(reco::PFRecHit& hit, const EcalRecHit& rh, bool& clean, bool fullReadOut) override {
723  return pass(hit);
724  return fullReadOut or pass(hit);
725  }
726  bool test(reco::PFRecHit& hit, const HBHERecHit& rh, bool& clean) override { return pass(hit); }
727 
728  bool test(reco::PFRecHit& hit, const HFRecHit& rh, bool& clean) override { return pass(hit); }
729  bool test(reco::PFRecHit& hit, const HORecHit& rh, bool& clean) override { return pass(hit); }
730 
731  bool test(reco::PFRecHit& hit, const CaloTower& rh, bool& clean) override { return pass(hit); }
732 
733  bool test(reco::PFRecHit& hit, const HGCRecHit& rh, bool& clean) override { return pass(hit); }
734 
735 protected:
738 
739  bool pass(const reco::PFRecHit& hit) {
740  float threshold = (*ths_)[hit.detId()];
741  return (hit.energy() > threshold);
742  }
743 };
744 
745 #endif
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
PFRecHitQTestHOThreshold::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:330
PFRecHitQTestThresholdInThicknessNormalizedMIPs::ddd_
const HGCalDDDConstants * ddd_
Definition: PFRecHitQTests.h:661
PFRecHitQTestDBThreshold::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:64
PFRecHitQTestBase
Definition: PFRecHitQTestBase.h:31
PFRecHitQTestHCALCalib29::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:536
PFRecHitQTestECALMultiThreshold::PFRecHitQTestECALMultiThreshold
PFRecHitQTestECALMultiThreshold(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:350
EcalRecHit
Definition: EcalRecHit.h:15
PFRecHitQTestECALMultiThreshold::pass
bool pass(const reco::PFRecHit &hit)
Definition: PFRecHitQTests.h:393
electrons_cff.bool
bool
Definition: electrons_cff.py:372
PFRecHitQTestThresholdInThicknessNormalizedMIPs::mip_
const double mip_
Definition: PFRecHitQTests.h:660
mps_fire.i
i
Definition: mps_fire.py:355
PFRecHitQTestThresholdInMIPs::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:578
EcalRecHit::kESBadRatioFor23Lower
Definition: EcalRecHit.h:52
PFRecHitQTestES::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:507
PFRecHitQTestECAL::PFRecHitQTestECAL
PFRecHitQTestECAL()
Definition: PFRecHitQTests.h:423
HGCalTopology::dddConstants
const HGCalDDDConstants & dddConstants() const
Definition: HGCalTopology.h:98
EcalPFRecHitThresholdsRcd
Definition: EcalPFRecHitThresholdsRcd.h:5
HcalTopology::idFront
HcalDetId idFront(const HcalDetId &id) const
Definition: HcalTopology.h:170
PFRecHitQTestDBSeedingThreshold::ths_
edm::ESHandle< EcalPFSeedingThresholds > ths_
Definition: PFRecHitQTests.h:737
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
PFRecHitQTestThresholdInThicknessNormalizedMIPs::threshold_
const double threshold_
Definition: PFRecHitQTests.h:660
PFRecHitQTestHGCalThresholdSNR::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:696
funct::false
false
Definition: Factorize.h:34
PFRecHitQTestES::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:505
CaloRecHit::energy
constexpr float energy() const
Definition: CaloRecHit.h:29
PFRecHitQTestHCALChannel::PFRecHitQTestHCALChannel
PFRecHitQTestHCALChannel(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:93
PFRecHitQTestDBThreshold
Definition: PFRecHitQTests.h:48
PFRecHitQTestHGCalThresholdSNR::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:701
EcalRingCalibrationTools::getRingIndex
static short getRingIndex(DetId aDetId)
Retrieve the phi-ring index corresponding to a DetId.
Definition: EcalRingCalibrationTools.cc:24
PFRecHitQTestThreshold::PFRecHitQTestThreshold
PFRecHitQTestThreshold(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:22
HcalChannelQualityRcd
Definition: HcalChannelQualityRcd.h:8
PFRecHitQTestThresholdInMIPs::threshold_
const double threshold_
Definition: PFRecHitQTests.h:597
PFRecHitQTestHOThreshold::threshold12_
const double threshold12_
Definition: PFRecHitQTests.h:336
PFRecHitQTestHCALChannel::PFRecHitQTestHCALChannel
PFRecHitQTestHCALChannel()
Definition: PFRecHitQTests.h:91
PFRecHitQTestECAL::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:434
HORecHit
Definition: HORecHit.h:11
PFRecHitQTestThresholdInThicknessNormalizedMIPs::pass
bool pass(const reco::PFRecHit &hit, const float mult)
Definition: PFRecHitQTests.h:663
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
PFRecHitQTestThresholdInThicknessNormalizedMIPs::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:643
PFRecHitQTestHOThreshold::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:314
PFRecHitQTestHCALChannel::cleanThresholds_
std::vector< double > cleanThresholds_
Definition: PFRecHitQTests.h:150
PFRecHitQTestHCALChannel::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:144
PFRecHitQTestHOThreshold::PFRecHitQTestHOThreshold
PFRecHitQTestHOThreshold()
Definition: PFRecHitQTests.h:305
PFRecHitQTestDBSeedingThreshold
Definition: PFRecHitQTests.h:711
PFRecHitQTestDBSeedingThreshold::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:728
HBHERecHit
Definition: HBHERecHit.h:13
PFRecHitQTestECAL::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:452
PFRecHitQTestDBThreshold::pass
bool pass(const reco::PFRecHit &hit)
Definition: PFRecHitQTests.h:77
PFRecHitQTestDBThreshold::PFRecHitQTestDBThreshold
PFRecHitQTestDBThreshold()
Definition: PFRecHitQTests.h:50
HcalTopology
Definition: HcalTopology.h:26
PFRecHitQTestHGCalThresholdSNR::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:687
PFRecHitQTestECALMultiThreshold::applySelectionsToAllCrystals_
bool applySelectionsToAllCrystals_
Definition: PFRecHitQTests.h:391
PFRecHitQTestHCALChannel::theHcalTopology_
const HcalTopology * theHcalTopology_
Definition: PFRecHitQTests.h:153
PFRecHitQTestDBThreshold::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:57
PFRecHitQTestECALMultiThreshold::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:377
PFRecHitQTestThresholdInMIPs::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:565
PFRecHitQTestDBThreshold::PFRecHitQTestDBThreshold
PFRecHitQTestDBThreshold(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:52
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
PFRecHitQTestHOThreshold::PFRecHitQTestHOThreshold
PFRecHitQTestHOThreshold(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:307
PFRecHitQTestHCALThresholdVsDepth::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:261
PFRecHitQTestECAL::PFRecHitQTestECAL
PFRecHitQTestECAL(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:425
PFRecHitQTestHCALChannel::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:146
PFRecHitQTestThresholdInMIPs::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:574
PFRecHitQTestDBThreshold::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:71
HcalRecNumberingRecord.h
EcalPFSeedingThresholdsRcd.h
HcalDetId::depth
constexpr int depth() const
get the tower depth
Definition: HcalDetId.h:164
PFRecHitQTestECALMultiThreshold::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:371
HcalChannelQuality
Definition: HcalChannelQuality.h:17
PFRecHitQTestHCALChannel::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:140
PFRecHitQTestHCALCalib29::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:546
PFRecHitQTestThresholdInThicknessNormalizedMIPs::geometryInstance_
const std::string geometryInstance_
Definition: PFRecHitQTests.h:658
EcalRecHit::energy
float energy() const
Definition: EcalRecHit.h:68
PFRecHitQTestHCALThresholdVsDepth::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:275
PFRecHitQTestHOThreshold::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:312
PFRecHitQTestECALMultiThreshold::PFRecHitQTestECALMultiThreshold
PFRecHitQTestECALMultiThreshold()
Definition: PFRecHitQTests.h:348
PFRecHitQTestHCALTimeVsDepth::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:219
CaloRecHit::detid
constexpr const DetId & detid() const
Definition: CaloRecHit.h:33
EcalRecHit::kTowerRecovered
Definition: EcalRecHit.h:30
PFRecHitQTestHCALThresholdVsDepth::PFRecHitQTestHCALThresholdVsDepth
PFRecHitQTestHCALThresholdVsDepth()
Definition: PFRecHitQTests.h:247
HcalTopology::getMergePositionFlag
bool getMergePositionFlag() const
Definition: HcalTopology.h:167
PFRecHitQTestThresholdInThicknessNormalizedMIPs::recHitEnergy_keV_
const bool recHitEnergy_keV_
Definition: PFRecHitQTests.h:659
PFRecHitQTestHOThreshold::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:316
PFRecHitQTestHOThreshold::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:332
PFRecHitQTestThresholdInMIPs
Definition: PFRecHitQTests.h:552
HcalCondObjectContainer::getValues
const Item * getValues(DetId fId, bool throwOnFail=true) const
Definition: HcalCondObjectContainer.h:159
PFRecHitQTestHCALCalib29::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:537
EcalBarrel
Definition: EcalSubdetector.h:10
PFRecHitQTestHGCalThresholdSNR
Definition: PFRecHitQTests.h:669
PFRecHitQTestHCALCalib29::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:539
PFRecHitQTestThresholdInMIPs::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:569
PFRecHitQTestHCALTimeVsDepth::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:210
PFRecHitQTestHCALThresholdVsDepth::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:277
HGCalDDDConstants
Definition: HGCalDDDConstants.h:25
edm::Exception
Definition: EDMException.h:77
PFRecHitQTestDBSeedingThreshold::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:721
PFRecHitQTestHGCalThresholdSNR::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:682
PFRecHitQTestECAL::topologicalCleaning_
bool topologicalCleaning_
Definition: PFRecHitQTests.h:465
PFRecHitQTestHGCalThresholdSNR::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:678
PFRecHitQTestES::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:483
EcalPFSeedingThresholds.h
PFRecHitQTestHCALChannel::depths_
std::vector< int > depths_
Definition: PFRecHitQTests.h:152
PFRecHitQTestThresholdInThicknessNormalizedMIPs::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:648
PFRecHitQTestECAL::skipTTRecoveredHits_
bool skipTTRecoveredHits_
Definition: PFRecHitQTests.h:466
PFRecHitQTestECAL::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:458
DetId
Definition: DetId.h:17
PFRecHitQTestHCALTimeVsDepth::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:203
PFRecHitQTestES::topologicalCleaning_
const bool topologicalCleaning_
Definition: PFRecHitQTests.h:513
EcalPFRecHitThresholds.h
EcalPFSeedingThresholdsRcd
Definition: EcalPFSeedingThresholdsRcd.h:5
PFRecHitQTestHOThreshold::threshold0_
const double threshold0_
Definition: PFRecHitQTests.h:335
PFRecHitQTestDBSeedingThreshold::pass
bool pass(const reco::PFRecHit &hit)
Definition: PFRecHitQTests.h:739
PFRecHitQTestThresholdInThicknessNormalizedMIPs::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:619
HFRecHit
Definition: HFRecHit.h:11
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
PFRecHitQTestHCALTimeVsDepth::depths_
std::vector< int > depths_
Definition: PFRecHitQTests.h:222
PFRecHitQTestThresholdInThicknessNormalizedMIPs::recHitEnergyMultiplier_
const double recHitEnergyMultiplier_
Definition: PFRecHitQTests.h:660
PFRecHitQTestHCALCalib29::PFRecHitQTestHCALCalib29
PFRecHitQTestHCALCalib29(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:523
PFRecHitQTestDBSeedingThreshold::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:717
PFRecHitQTestHGCalThresholdSNR::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:691
PFRecHitQTestHCALThresholdVsDepth::detector_
int detector_
Definition: PFRecHitQTests.h:282
PFRecHitQTestHGCalThresholdSNR::PFRecHitQTestHGCalThresholdSNR
PFRecHitQTestHGCalThresholdSNR()
Definition: PFRecHitQTests.h:671
PFRecHitQTestThresholdInThicknessNormalizedMIPs::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:625
PFRecHitQTestES
Definition: PFRecHitQTests.h:472
PFRecHitQTestHCALTimeVsDepth::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:206
HcalChannelStatus
Definition: HcalChannelStatus.h:13
HcalCaloFlagLabels::HFDigiTime
Definition: HcalCaloFlagLabels.h:38
PFRecHitQTestThresholdInMIPs::PFRecHitQTestThresholdInMIPs
PFRecHitQTestThresholdInMIPs(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:556
EcalRecHit::checkFlag
bool checkFlag(int flag) const
check if the flag is true
Definition: EcalRecHit.h:187
PFRecHitQTestThresholdInMIPs::PFRecHitQTestThresholdInMIPs
PFRecHitQTestThresholdInMIPs()
Definition: PFRecHitQTests.h:554
HcalSeverityLevelComputer
Definition: HcalSeverityLevelComputer.h:24
PFRecHitQTestDBSeedingThreshold::applySelectionsToAllCrystals_
bool applySelectionsToAllCrystals_
Definition: PFRecHitQTests.h:736
PFRecHitQTestThreshold::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:25
PFRecHitQTestHCALCalib29::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:528
edm::ESHandle
Definition: DTSurvey.h:22
PFRecHitQTestThresholdInThicknessNormalizedMIPs::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:629
PFRecHitQTestHCALThresholdVsDepth::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:264
PFRecHitQTestECALMultiThreshold::thresholds_
const std::vector< double > thresholds_
Definition: PFRecHitQTests.h:387
PFRecHitQTestThreshold::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:37
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
PFRecHitQTestDBThreshold::eventSetup_
const edm::EventSetup * eventSetup_
Definition: PFRecHitQTests.h:75
PFRecHitQTestHCALTimeVsDepth::maxTimes_
std::vector< double > maxTimes_
Definition: PFRecHitQTests.h:224
PFRecHitQTestThresholdInMIPs::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:588
HGCalGeometry::topology
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:112
PFRecHitQTestECAL::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:432
HcalRecNumberingRecord
Definition: HcalRecNumberingRecord.h:23
PFRecHitQTestHCALChannel::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:133
CaloGeometryRecord.h
PFRecHitQTestHCALChannel::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:132
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CaloRecHit::time
constexpr float time() const
Definition: CaloRecHit.h:31
HGCRecHit
Definition: HGCRecHit.h:14
EcalEndcap
Definition: EcalSubdetector.h:10
EcalRingCalibrationTools::N_RING_TOTAL
static constexpr short N_RING_TOTAL
Definition: EcalRingCalibrationTools.h:37
PFRecHitQTestThreshold::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:32
PFRecHitQTestHOThreshold::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:320
PFRecHitQTestES::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:481
PFRecHitQTestThreshold::PFRecHitQTestThreshold
PFRecHitQTestThreshold()
Definition: PFRecHitQTests.h:20
HcalSeverityLevelComputer::getSeverityLevel
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
Definition: HcalSeverityLevelComputer.cc:304
HcalChannelStatus::getValue
uint32_t getValue() const
Definition: HcalChannelStatus.h:60
PFRecHitQTestHCALCalib29::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:529
PFRecHitQTestHCALCalib29::PFRecHitQTestHCALCalib29
PFRecHitQTestHCALCalib29()
Definition: PFRecHitQTests.h:521
PFRecHitQTestDBThreshold::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:69
EcalRecHit::kOutOfTime
Definition: EcalRecHit.h:23
HGCalGeometry.h
edm::ParameterSet
Definition: ParameterSet.h:36
PFRecHitQTestThresholdInThicknessNormalizedMIPs::PFRecHitQTestThresholdInThicknessNormalizedMIPs
PFRecHitQTestThresholdInThicknessNormalizedMIPs()
Definition: PFRecHitQTests.h:608
PFRecHitQTestECAL
Definition: PFRecHitQTests.h:421
PFRecHitQTestHCALChannel
Definition: PFRecHitQTests.h:89
EcalRecHit::kESTS1Largest
Definition: EcalRecHit.h:53
EcalRecHit::kESTS3Negative
Definition: EcalRecHit.h:55
PFRecHitQTestDBThreshold::applySelectionsToAllCrystals_
bool applySelectionsToAllCrystals_
Definition: PFRecHitQTests.h:74
PFRecHitQTestHCALTimeVsDepth::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:205
EcalRecHit::kESTS13Sigmas
Definition: EcalRecHit.h:59
PFRecHitQTestECAL::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:460
PFRecHitQTestHCALTimeVsDepth::PFRecHitQTestHCALTimeVsDepth
PFRecHitQTestHCALTimeVsDepth()
Definition: PFRecHitQTests.h:191
HcalDetId::subdet
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
PFRecHitQTestDBThreshold::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:66
PFRecHitQTestThresholdInThicknessNormalizedMIPs::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:634
PFRecHitQTestThreshold::threshold_
double threshold_
Definition: PFRecHitQTests.h:40
EcalPFRecHitThresholdsRcd.h
HcalDetId
Definition: HcalDetId.h:12
PFRecHitQTestThresholdInMIPs::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:563
PFRecHitQTestECALMultiThreshold::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:384
PFRecHitQTestES::PFRecHitQTestES
PFRecHitQTestES()
Definition: PFRecHitQTests.h:474
CaloTower
Definition: CaloTower.h:26
PFRecHitQTestThresholdInMIPs::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:583
PFRecHitQTestHCALTimeVsDepth::test
bool test(unsigned aDETID, double energy, double time, bool &clean)
Definition: PFRecHitQTests.h:227
PFRecHitQTestThreshold::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:33
PFRecHitQTestHCALThresholdVsDepth::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:268
PFRecHitQTestHCALChannel::thresholds_
std::vector< int > thresholds_
Definition: PFRecHitQTests.h:149
PFRecHitQTestThresholdInThicknessNormalizedMIPs
Definition: PFRecHitQTests.h:606
edm::EventSetup
Definition: EventSetup.h:57
EcalRecHit::kWeird
Definition: EcalRecHit.h:35
PFRecHitQTestDBSeedingThreshold::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:729
DetId::Ecal
Definition: DetId.h:27
PFRecHitQTestHCALTimeVsDepth::thresholds_
std::vector< double > thresholds_
Definition: PFRecHitQTests.h:225
PFRecHitQTestECALMultiThreshold::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:360
PFRecHitQTestHCALThresholdVsDepth::test
bool test(unsigned aDETID, double energy, double time, bool &clean)
Definition: PFRecHitQTests.h:284
get
#define get
EcalRecHit::kESBadRatioFor12
Definition: EcalRecHit.h:50
PFRecHitQTestES::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:509
PFRecHitQTestHCALThresholdVsDepth::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:271
PFRecHitQTestHCALChannel::test
bool test(unsigned aDETID, double energy, int flags, bool &clean)
Definition: PFRecHitQTests.h:157
PFRecHitQTestES::PFRecHitQTestES
PFRecHitQTestES(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:476
PFRecHitQTestHCALChannel::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:120
HcalCaloFlagLabels::HFInTimeWindow
Definition: HcalCaloFlagLabels.h:39
PFRecHitQTestES::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:501
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
PFRecHitQTestHOThreshold::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:318
PFRecHitQTestECAL::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:454
HGCalDetId
Definition: HGCalDetId.h:8
PFRecHitQTestHCALThresholdVsDepth::PFRecHitQTestHCALThresholdVsDepth
PFRecHitQTestHCALThresholdVsDepth(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:249
HcalTopology.h
PFRecHitQTestHCALChannel::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:137
PFRecHitQTestECALMultiThreshold::endcapGeometrySet_
bool endcapGeometrySet_
Definition: PFRecHitQTests.h:388
PFRecHitQTestHGCalThresholdSNR::thresholdSNR_
const double thresholdSNR_
Definition: PFRecHitQTests.h:706
PFRecHitQTestThresholdInMIPs::recHitEnergy_keV_
const bool recHitEnergy_keV_
Definition: PFRecHitQTests.h:596
PFRecHitQTestThreshold
Definition: PFRecHitQTests.h:18
std
Definition: JetResolutionObject.h:76
PFRecHitQTestES::thresholdCleaning_
const double thresholdCleaning_
Definition: PFRecHitQTests.h:512
PFRecHitQTestThreshold::pass
bool pass(const reco::PFRecHit &hit)
Definition: PFRecHitQTests.h:42
PFRecHitQTestHCALTimeVsDepth::minTimes_
std::vector< double > minTimes_
Definition: PFRecHitQTests.h:223
HcalEndcap
Definition: HcalAssistant.h:34
DetId.h
PFRecHitQTestHCALChannel::flags_
std::vector< int > flags_
Definition: PFRecHitQTests.h:151
PFRecHitQTestThresholdInThicknessNormalizedMIPs::PFRecHitQTestThresholdInThicknessNormalizedMIPs
PFRecHitQTestThresholdInThicknessNormalizedMIPs(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:611
PFRecHitQTestDBSeedingThreshold::PFRecHitQTestDBSeedingThreshold
PFRecHitQTestDBSeedingThreshold(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:713
PFRecHitQTestES::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:503
clean
static void clean(char *s)
Definition: ConnectionManager.cc:13
PFRecHitQTestHCALCalib29::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:526
PFRecHitQTestThreshold::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:27
Exception
Definition: hltDiff.cc:246
PFRecHitQTestHCALThresholdVsDepth::thresholds_
std::vector< double > thresholds_
Definition: PFRecHitQTests.h:281
CaloGeometry.h
PFRecHitQTestECAL::timingCleaning_
bool timingCleaning_
Definition: PFRecHitQTests.h:464
PFRecHitQTestDBThreshold::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:59
PFRecHitQTestThresholdInThicknessNormalizedMIPs::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:638
PFRecHitQTestHCALTimeVsDepth::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:217
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
PFRecHitQTestHCALChannel::theHcalChStatus_
const HcalChannelQuality * theHcalChStatus_
Definition: PFRecHitQTests.h:154
PFRecHitQTestHGCalThresholdSNR::PFRecHitQTestHGCalThresholdSNR
PFRecHitQTestHGCalThresholdSNR(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:673
PFRecHitQTestHCALCalib29::calibFactor_
const float calibFactor_
Definition: PFRecHitQTests.h:549
PFRecHitQTestHCALThresholdVsDepth::test
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
Definition: PFRecHitQTests.h:263
HcalCaloFlagLabels::HFLongShort
Definition: HcalCaloFlagLabels.h:37
VarParsing.mult
mult
Definition: VarParsing.py:659
PFRecHitQTestHCALTimeVsDepth
Definition: PFRecHitQTests.h:189
PFRecHitQTestHCALTimeVsDepth::PFRecHitQTestHCALTimeVsDepth
PFRecHitQTestHCALTimeVsDepth(const edm::ParameterSet &iConfig)
Definition: PFRecHitQTests.h:193
reco::PFRecHit
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
Definition: PFRecHit.h:31
PFRecHitQTestHCALCalib29
Definition: PFRecHitQTests.h:519
HGCalDDDConstants::waferTypeL
int waferTypeL(int wafer) const
Definition: HGCalDDDConstants.h:173
PFRecHitQTestDBSeedingThreshold::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:726
HGCRecHit::signalOverSigmaNoise
float signalOverSigmaNoise() const
Definition: HGCRecHit.cc:71
EcalRecHit::kDiWeird
Definition: EcalRecHit.h:36
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
PFRecHitQTestECALMultiThreshold::test
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:379
PFRecHitQTestECAL::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:456
PFRecHitQTestECALMultiThreshold::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:382
PFRecHitQTestHOThreshold
Definition: PFRecHitQTests.h:303
ntuplemaker.time
time
Definition: ntuplemaker.py:310
event
Definition: event.py:1
remoteMonitoring_LED_IterMethod_cfg.threshold
threshold
Definition: remoteMonitoring_LED_IterMethod_cfg.py:426
PFRecHitQTestThreshold::test
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:30
edm::Event
Definition: Event.h:73
PFRecHitQTestThresholdInMIPs::recHitEnergyMultiplier_
const double recHitEnergyMultiplier_
Definition: PFRecHitQTests.h:597
EcalRingCalibrationTools.h
EcalRecHit::kESBadRatioFor23Upper
Definition: EcalRecHit.h:51
PFRecHitQTestECAL::thresholdCleaning_
double thresholdCleaning_
Definition: PFRecHitQTests.h:463
PFRecHitQTestHGCalThresholdSNR::beginEvent
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
Definition: PFRecHitQTests.h:676
EcalRingCalibrationTools::setCaloGeometry
static void setCaloGeometry(const CaloGeometry *geometry)
Definition: EcalRingCalibrationTools.cc:181
EcalRecHit::kESDead
Definition: EcalRecHit.h:46
PFRecHitQTestECALMultiThreshold
Definition: PFRecHitQTests.h:346
edm::errors::Configuration
Definition: EDMException.h:36
PFRecHitQTestDBThreshold::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:67
HLT_2018_cff.flags
flags
Definition: HLT_2018_cff.py:11758
PFRecHitQTestHCALThresholdVsDepth::depths_
std::vector< int > depths_
Definition: PFRecHitQTests.h:280
PFRecHitQTestThresholdInMIPs::pass
bool pass(const reco::PFRecHit &hit)
Definition: PFRecHitQTests.h:599
HcalSeverityLevelComputerRcd
Definition: HcalSeverityLevelComputerRcd.h:23
PFRecHitQTestDBSeedingThreshold::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:731
IdealGeometryRecord
Definition: IdealGeometryRecord.h:27
PFRecHitQTestHCALTimeVsDepth::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:213
PFRecHitQTestBase.h
hit
Definition: SiStripHitEffFromCalibTree.cc:88
CaloRecHit::flags
constexpr uint32_t flags() const
Definition: CaloRecHit.h:34
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:116
EcalRecHit::kESTS3Largest
Definition: EcalRecHit.h:54
PFRecHitQTestThresholdInMIPs::mip_
const double mip_
Definition: PFRecHitQTests.h:597
PFRecHitQTestHCALChannel::hcalSevLvlComputer_
const HcalSeverityLevelComputer * hcalSevLvlComputer_
Definition: PFRecHitQTests.h:155
PFRecHitQTestHCALThresholdVsDepth
Definition: PFRecHitQTests.h:245
PFRecHitQTestDBSeedingThreshold::test
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:733
PFRecHitQTestECALMultiThreshold::test
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Definition: PFRecHitQTests.h:380
PFRecHitQTestThreshold::test
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
Definition: PFRecHitQTests.h:35
CaloTowerDetId
Definition: CaloTowerDetId.h:12