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