CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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>
7 
8 #include <iostream>
9 
10 //
11 // Quality test that checks threshold
12 //
14  public:
16 
17  }
18 
20  PFRecHitQTestBase(iConfig)
21  {
22  threshold_ = iConfig.getParameter<double>("threshold");
23 
24  }
25 
26  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
27  }
28 
29  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
30  return pass(hit);
31  }
32  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
33  return pass(hit);
34  }
35 
36  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
37  return pass(hit);
38  }
39  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
40  return pass(hit);
41  }
42 
43  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
44  return pass(hit);
45  }
46 
47  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
48  return pass(hit);
49  }
50 
51  protected:
52  double threshold_;
53 
54  bool pass(const reco::PFRecHit& hit){
55  if (hit.energy()>threshold_) return true;
56 
57  return false;
58  }
59 };
60 
61 
62 
63 
64 //
65 // Quality test that checks kHCAL Severity
66 //
68 
69  public:
70 
71 
73 
74  }
75 
77  PFRecHitQTestBase(iConfig)
78  {
79  thresholds_ = iConfig.getParameter<std::vector<int> >("maxSeverities");
80  cleanThresholds_ = iConfig.getParameter<std::vector<double> >("cleaningThresholds");
81  std::vector<std::string> flags = iConfig.getParameter<std::vector<std::string> >("flags");
82  for (unsigned int i=0;i<flags.size();++i) {
83  if (flags[i] =="Standard") {
84  flags_.push_back(-1);
85  depths_.push_back(-1);
86 
87  }
88  else if (flags[i] =="HFInTime") {
90  depths_.push_back(-1);
91  }
92  else if (flags[i] =="HFDigi") {
94  depths_.push_back(-1);
95 
96  }
97  else if (flags[i] =="HFLong") {
99  depths_.push_back(1);
100 
101  }
102  else if (flags[i] =="HFShort") {
104  depths_.push_back(2);
105 
106  }
107  else {
108  flags_.push_back(-1);
109  depths_.push_back(-1);
110 
111  }
112  }
113 
114  }
115 
116  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
118  iSetup.get<HcalRecNumberingRecord>().get(topo);
119  edm::ESHandle<HcalChannelQuality> hcalChStatus;
120  iSetup.get<HcalChannelQualityRcd>().get( "withTopo", hcalChStatus );
121  theHcalChStatus_ = hcalChStatus.product();
122  edm::ESHandle<HcalSeverityLevelComputer> hcalSevLvlComputerHndl;
123  iSetup.get<HcalSeverityLevelComputerRcd>().get(hcalSevLvlComputerHndl);
124  hcalSevLvlComputer_ = hcalSevLvlComputerHndl.product();
125  }
126 
127  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
128  return true;
129  }
130  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
131  return test(rh.detid(),rh.energy(),rh.flags(),clean);
132  }
133 
134  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
135  return test(rh.detid(),rh.energy(),rh.flags(),clean);
136  }
137  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
138  return test(rh.detid(),rh.energy(),rh.flags(),clean);
139  }
140 
141  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
142  return true;
143  }
144 
145  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
146  return true;
147  }
148 
149  protected:
150  std::vector<int> thresholds_;
151  std::vector<double> cleanThresholds_;
152  std::vector<int> flags_;
153  std::vector<int> depths_;
156 
157  bool test(unsigned aDETID,double energy,int flags,bool& clean){
158  const HcalDetId& detid = (HcalDetId)aDETID;
159  const HcalChannelStatus* theStatus = theHcalChStatus_->getValues(detid);
160  unsigned theStatusValue = theStatus->getValue();
161  // Now get severity of problems for the given detID, based on the rechit flag word and the channel quality status value
162  for (unsigned int i=0;i<thresholds_.size();++i) {
163  int hitSeverity =0;
164  if (energy < cleanThresholds_[i])
165  continue;
166 
167  if(flags_[i]<0) {
168  hitSeverity=hcalSevLvlComputer_->getSeverityLevel(detid, flags,theStatusValue);
169  }
170  else {
171  hitSeverity=hcalSevLvlComputer_->getSeverityLevel(detid, flags & flags_[i],theStatusValue);
172  }
173 
174  if (hitSeverity>thresholds_[i] && ((depths_[i]<0 || (depths_[i]==detid.depth())))) {
175  clean=true;
176  return false;
177  }
178  }
179  return true;
180  }
181 
182 };
183 
184 //
185 // Quality test that applies threshold and timing as a function of depth
186 //
188  public:
190 
191  }
192 
194  PFRecHitQTestBase(iConfig)
195  {
196  std::vector<edm::ParameterSet> psets = iConfig.getParameter<std::vector<edm::ParameterSet> >("cuts");
197  for (unsigned int i=0;i<psets.size();++i) {
198  depths_.push_back(psets[i].getParameter<int>("depth"));
199  minTimes_.push_back(psets[i].getParameter<double>("minTime"));
200  maxTimes_.push_back(psets[i].getParameter<double>("maxTime"));
201  thresholds_.push_back(psets[i].getParameter<double>("threshold"));
202  }
203  }
204 
205  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
206  }
207 
208  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
209  return true;
210  }
211  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
212  return test(rh.detid(),rh.energy(),rh.time(),clean);
213  }
214 
215  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
216  return test(rh.detid(),rh.energy(),rh.time(),clean);
217  }
218  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean) {
219  return test(rh.detid(),rh.energy(),rh.time(),clean);
220  }
221 
222  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
223  return true;
224  }
225 
226  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
227  return true;
228  }
229 
230  protected:
231  std::vector<int> depths_;
232  std::vector<double> minTimes_;
233  std::vector<double> maxTimes_;
234  std::vector<double> thresholds_;
235 
236  bool test(unsigned aDETID,double energy,double time,bool& clean){
237  HcalDetId detid(aDETID);
238  for (unsigned int i=0;i<depths_.size();++i) {
239  if (detid.depth() == depths_[i]) {
240  if ((time <minTimes_[i] || time >maxTimes_[i] ) && energy>thresholds_[i])
241  {
242  clean=true;
243  return false;
244  }
245  break;
246  }
247  }
248  return true;
249  }
250 };
251 
252 
253 
254 
255 //
256 // Quality test that applies threshold as a function of depth
257 //
259  public:
261 
262  }
263 
265  PFRecHitQTestBase(iConfig)
266  {
267  std::vector<edm::ParameterSet> psets = iConfig.getParameter<std::vector<edm::ParameterSet> >("cuts");
268  for (unsigned int i=0;i<psets.size();++i) {
269  depths_.push_back(psets[i].getParameter<int>("depth"));
270  thresholds_.push_back(psets[i].getParameter<double>("threshold"));
271  }
272  }
273 
274  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
275  }
276 
277  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
278  return true;
279  }
280  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
281  return test(rh.detid(),rh.energy(),rh.time(),clean);
282  }
283 
284  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
285  return test(rh.detid(),rh.energy(),rh.time(),clean);
286  }
287  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
288  return test(rh.detid(),rh.energy(),rh.time(),clean);
289  }
290 
291  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
292  return true;
293  }
294 
295  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
296  return true;
297  }
298 
299  protected:
300  std::vector<int> depths_;
301  std::vector<double> thresholds_;
302 
303  bool test(unsigned aDETID,double energy,double time,bool& clean){
304  HcalDetId detid(aDETID);
305  for (unsigned int i=0;i<depths_.size();++i) {
306  if (detid.depth() == depths_[i]) {
307  if ( energy<thresholds_[i])
308  {
309  clean=false;
310  return false;
311  }
312  break;
313  }
314  }
315  return true;
316  }
317 };
318 
319 
320 
321 
322 
323 //
324 // Quality test that checks HO threshold applying different threshold in rings
325 //
327  public:
329 
330  }
331 
333  PFRecHitQTestBase(iConfig)
334  {
335  threshold0_ = iConfig.getParameter<double>("threshold_ring0");
336  threshold12_ = iConfig.getParameter<double>("threshold_ring12");
337  }
338 
339  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
340  }
341 
342  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
343  return true;
344  }
345  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
346  return true;
347  }
348 
349  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
350  return true;
351  }
352  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
353  HcalDetId detid(rh.detid());
354  if (abs(detid.ieta())<=4 && hit.energy()>threshold0_)
355  return true;
356  if (abs(detid.ieta())>4 && hit.energy()>threshold12_)
357  return true;
358 
359  return false;
360  }
361 
362  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
363  return true;
364  }
365 
366  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
367  return true;
368  }
369 
370  protected:
371  double threshold0_;
372  double threshold12_;
373 
374 };
375 
376 //
377 // Quality test that checks ecal quality cuts
378 //
380  public:
382 
383  }
384 
386  PFRecHitQTestBase(iConfig)
387  {
388  thresholdCleaning_ = iConfig.getParameter<double>("cleaningThreshold");
389  timingCleaning_ = iConfig.getParameter<bool>("timingCleaning");
390  topologicalCleaning_ = iConfig.getParameter<bool>("topologicalCleaning");
391  skipTTRecoveredHits_ = iConfig.getParameter<bool>("skipTTRecoveredHits");
392 
393  }
394 
395  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
396  }
397 
398  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
400  {
401  clean=true;
402  return false;
403  }
404  if ( timingCleaning_ && rh.energy() > thresholdCleaning_ &&
406  clean=true;
407  return false;
408  }
409 
410  if ( topologicalCleaning_ &&
411  ( rh.checkFlag(EcalRecHit::kWeird) ||
413  clean=true;
414  return false;
415  }
416 
417  return true;
418  }
419 
420  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
421  return true;
422  }
423 
424  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
425  return true;
426 
427  }
428 
429  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
430  return true;
431  }
432 
433  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
434  return true;
435 
436  }
437 
438  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
439  return true;
440  }
441 
442 
443  protected:
448 
449 };
450 
451 //
452 // Quality test that checks ES quality cuts
453 //
455 
456  public:
458 
459  }
460 
462  PFRecHitQTestBase(iConfig)
463  {
464  thresholdCleaning_ = iConfig.getParameter<double>("cleaningThreshold");
465  topologicalCleaning_ = iConfig.getParameter<bool>("topologicalCleaning");
466  }
467 
468  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
469  }
470 
471  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
472 
473  if ( rh.energy() < thresholdCleaning_ ) {
474  clean=false;
475  return false;
476  }
477 
478  if ( topologicalCleaning_ &&
487  )) {
488  clean=false;
489  return false;
490  }
491 
492  return true;
493  }
494 
495  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
496  return true;
497  }
498 
499  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
500  return true;
501 
502  }
503 
504  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
505  return true;
506  }
507 
508  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
509  return true;
510 
511  }
512 
513  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
514  return true;
515  }
516 
517 
518  protected:
521 
522 };
523 
524 //
525 // Quality test that calibrates tower 29 of HCAL
526 //
528  public:
530 
531  }
532 
534  PFRecHitQTestBase(iConfig)
535  {
536  calibFactor_ =iConfig.getParameter<double>("calibFactor");
537  }
538 
539  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
540  }
541 
542  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
543  return true;
544  }
545  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
546  HcalDetId detId(hit.detId());
547  if (abs(detId.ieta())==29)
548  hit.setEnergy(hit.energy()*calibFactor_);
549  return true;
550 
551  }
552 
553  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
554  return true;
555 
556  }
557  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
558  return true;
559  }
560 
561  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
562  CaloTowerDetId detId(hit.detId());
563  if (detId.ietaAbs()==29)
564  hit.setEnergy(hit.energy()*calibFactor_);
565  return true;
566 
567  }
568 
569  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
570  return true;
571  }
572 
573  protected:
575 };
576 
578  public:
580 
581  }
582 
584  PFRecHitQTestBase(iConfig)
585  {
586  recHitEnergy_keV_ = iConfig.getParameter<bool>("recHitEnergyIs_keV");
587  threshold_ = iConfig.getParameter<double>("thresholdInMIPs");
588  mip_ = iConfig.getParameter<double>("mipValueInkeV");
589  recHitEnergyMultiplier_ = iConfig.getParameter<double>("recHitEnergyMultiplier");
590  }
591 
592  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
593  }
594 
595  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean) {
596  throw cms::Exception("WrongDetector")
597  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
598  return false;
599  }
600  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean) {
601  throw cms::Exception("WrongDetector")
602  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
603  return false;
604  }
605 
606  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean) {
607  throw cms::Exception("WrongDetector")
608  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
609  return false;
610  }
611  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean) {
612  throw cms::Exception("WrongDetector")
613  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
614  return false;
615  }
616 
617  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean) {
618  throw cms::Exception("WrongDetector")
619  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
620  return false;
621  }
622 
623  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean) {
624  const double newE = ( recHitEnergy_keV_ ?
625  1.0e-6*rh.energy()*recHitEnergyMultiplier_ :
627  hit.setEnergy(newE);
628  return pass(hit);
629  }
630 
631  protected:
634 
635  bool pass(const reco::PFRecHit& hit) {
636  const double hitValueInMIPs = 1e6*hit.energy()/mip_;
637  return hitValueInMIPs > threshold_;
638  }
639 };
640 
641 #endif
double thresholdCleaning_
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean)
T getParameter(std::string const &) const
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
int i
Definition: DBlmapReader.cc:9
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean)
const HcalChannelQuality * theHcalChStatus_
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean)
std::vector< double > minTimes_
bool pass(const reco::PFRecHit &hit)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup)
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
const DetId & detid() const
Definition: CaloRecHit.h:20
unsigned detId() const
rechit detId
Definition: PFRecHit.h:108
PFRecHitQTestThreshold(const edm::ParameterSet &iConfig)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup)
std::vector< int > depths_
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)
const HcalSeverityLevelComputer * hcalSevLvlComputer_
std::vector< double > maxTimes_
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean)
std::vector< Variable::Flags > flags
Definition: MVATrainer.cc:135
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean)
PFRecHitQTestECAL(const edm::ParameterSet &iConfig)
const Item * getValues(DetId fId, bool throwOnFail=true) const
bool test(unsigned aDETID, double energy, double time, bool &clean)
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup)
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
float time() const
Definition: CaloRecHit.h:19
PFRecHitQTestHCALChannel(const edm::ParameterSet &iConfig)
std::vector< double > cleanThresholds_
std::vector< double > thresholds_
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup)
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean)
PFRecHitQTestHCALThresholdVsDepth(const edm::ParameterSet &iConfig)
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)
std::vector< double > thresholds_
bool test(unsigned aDETID, double energy, double time, bool &clean)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
int depth() const
get the tower depth
Definition: HcalDetId.cc:129
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
Definition: PFRecHit.h:31
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
bool checkFlag(int flag) const
check if the flag is true
Definition: EcalRecHit.h:188
float energy() const
Definition: CaloRecHit.h:17
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
PFRecHitQTestHCALCalib29(const edm::ParameterSet &iConfig)
uint32_t flags() const
Definition: CaloRecHit.h:21
bool pass(const reco::PFRecHit &hit)
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)
float energy() const
Definition: EcalRecHit.h:68
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
float energy() const
rechit energy
Definition: PFRecHit.h:114
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
PFRecHitQTestHCALTimeVsDepth(const edm::ParameterSet &iConfig)
std::vector< T * > clean
Definition: MVATrainer.cc:156
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup)
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean)
PFRecHitQTestHOThreshold(const edm::ParameterSet &iConfig)
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup)
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
const T & get() const
Definition: EventSetup.h:56
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
T const * product() const
Definition: ESHandle.h:86
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
std::vector< int > depths_
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
std::vector< int > thresholds_
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)
void setEnergy(float energy)
Definition: PFRecHit.h:74
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
PFRecHitQTestThresholdInMIPs(const edm::ParameterSet &iConfig)
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
bool test(unsigned aDETID, double energy, int flags, bool &clean)
uint32_t getValue() const
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup)
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup)
std::vector< int > flags_
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
PFRecHitQTestES(const edm::ParameterSet &iConfig)
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)