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>
8 
9 #include <iostream>
10 
11 //
12 // Quality test that checks threshold
13 //
15  public:
17 
18  }
19 
21  PFRecHitQTestBase(iConfig)
22  {
23  threshold_ = iConfig.getParameter<double>("threshold");
24 
25  }
26 
27  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
28  }
29 
30  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
31  return pass(hit);
32  }
33  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
34  return pass(hit);
35  }
36 
37  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
38  return pass(hit);
39  }
40  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
41  return pass(hit);
42  }
43 
44  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
45  return pass(hit);
46  }
47 
48  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
49  return pass(hit);
50  }
51 
52  protected:
53  double threshold_;
54 
55  bool pass(const reco::PFRecHit& hit){
56  if (hit.energy()>threshold_) return true;
57 
58  return false;
59  }
60 };
61 
62 
63 
64 
65 //
66 // Quality test that checks kHCAL Severity
67 //
69 
70  public:
71 
72 
74 
75  }
76 
78  PFRecHitQTestBase(iConfig)
79  {
80  thresholds_ = iConfig.getParameter<std::vector<int> >("maxSeverities");
81  cleanThresholds_ = iConfig.getParameter<std::vector<double> >("cleaningThresholds");
82  std::vector<std::string> flags = iConfig.getParameter<std::vector<std::string> >("flags");
83  for (unsigned int i=0;i<flags.size();++i) {
84  if (flags[i] =="Standard") {
85  flags_.push_back(-1);
86  depths_.push_back(-1);
87 
88  }
89  else if (flags[i] =="HFInTime") {
90  flags_.push_back(1<<HcalCaloFlagLabels::HFInTimeWindow);
91  depths_.push_back(-1);
92  }
93  else if (flags[i] =="HFDigi") {
94  flags_.push_back(1<<HcalCaloFlagLabels::HFDigiTime);
95  depths_.push_back(-1);
96 
97  }
98  else if (flags[i] =="HFLong") {
99  flags_.push_back(1<<HcalCaloFlagLabels::HFLongShort);
100  depths_.push_back(1);
101 
102  }
103  else if (flags[i] =="HFShort") {
104  flags_.push_back(1<<HcalCaloFlagLabels::HFLongShort);
105  depths_.push_back(2);
106 
107  }
108  else {
109  flags_.push_back(-1);
110  depths_.push_back(-1);
111 
112  }
113  }
114 
115  }
116 
117  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
119  iSetup.get<HcalRecNumberingRecord>().get(topo);
120  theHcalTopology_ = topo.product();
121  edm::ESHandle<HcalChannelQuality> hcalChStatus;
122  iSetup.get<HcalChannelQualityRcd>().get( "withTopo", hcalChStatus );
123  theHcalChStatus_ = hcalChStatus.product();
124  edm::ESHandle<HcalSeverityLevelComputer> hcalSevLvlComputerHndl;
125  iSetup.get<HcalSeverityLevelComputerRcd>().get(hcalSevLvlComputerHndl);
126  hcalSevLvlComputer_ = hcalSevLvlComputerHndl.product();
127  }
128 
129  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
130  return true;
131  }
132  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
133  return test(rh.detid(),rh.energy(),rh.flags(),clean);
134  }
135 
136  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
137  return test(rh.detid(),rh.energy(),rh.flags(),clean);
138  }
139  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
140  return test(rh.detid(),rh.energy(),rh.flags(),clean);
141  }
142 
143  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
144  return true;
145  }
146 
147  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
148  return true;
149  }
150 
151  protected:
152  std::vector<int> thresholds_;
153  std::vector<double> cleanThresholds_;
154  std::vector<int> flags_;
155  std::vector<int> depths_;
159 
160  bool test(unsigned aDETID,double energy,int flags,bool& clean){
161  HcalDetId detid = (HcalDetId)aDETID;
162  if (theHcalTopology_->withSpecialRBXHBHE() && detid.subdet() == HcalEndcap){
163  detid = theHcalTopology_->idFront(detid);
164  }
165 
166  const HcalChannelStatus* theStatus = theHcalChStatus_->getValues(detid);
167  unsigned theStatusValue = theStatus->getValue();
168  // Now get severity of problems for the given detID, based on the rechit flag word and the channel quality status value
169  for (unsigned int i=0;i<thresholds_.size();++i) {
170  int hitSeverity =0;
171  if (energy < cleanThresholds_[i])
172  continue;
173 
174  if(flags_[i]<0) {
175  hitSeverity=hcalSevLvlComputer_->getSeverityLevel(detid, flags,theStatusValue);
176  }
177  else {
178  hitSeverity=hcalSevLvlComputer_->getSeverityLevel(detid, flags & flags_[i],theStatusValue);
179  }
180 
181  if (hitSeverity>thresholds_[i] && ((depths_[i]<0 || (depths_[i]==detid.depth())))) {
182  clean=true;
183  return false;
184  }
185  }
186  return true;
187  }
188 
189 };
190 
191 //
192 // Quality test that applies threshold and timing as a function of depth
193 //
195  public:
197 
198  }
199 
201  PFRecHitQTestBase(iConfig)
202  {
203  std::vector<edm::ParameterSet> psets = iConfig.getParameter<std::vector<edm::ParameterSet> >("cuts");
204  for (unsigned int i=0;i<psets.size();++i) {
205  depths_.push_back(psets[i].getParameter<int>("depth"));
206  minTimes_.push_back(psets[i].getParameter<double>("minTime"));
207  maxTimes_.push_back(psets[i].getParameter<double>("maxTime"));
208  thresholds_.push_back(psets[i].getParameter<double>("threshold"));
209  }
210  }
211 
212  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
213  }
214 
215  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
216  return true;
217  }
218  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
219  return test(rh.detid(),rh.energy(),rh.time(),clean);
220  }
221 
222  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
223  return test(rh.detid(),rh.energy(),rh.time(),clean);
224  }
225  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean) {
226  return test(rh.detid(),rh.energy(),rh.time(),clean);
227  }
228 
229  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
230  return true;
231  }
232 
233  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
234  return true;
235  }
236 
237  protected:
238  std::vector<int> depths_;
239  std::vector<double> minTimes_;
240  std::vector<double> maxTimes_;
241  std::vector<double> thresholds_;
242 
243  bool test(unsigned aDETID,double energy,double time,bool& clean){
244  HcalDetId detid(aDETID);
245  for (unsigned int i=0;i<depths_.size();++i) {
246  if (detid.depth() == depths_[i]) {
247  if ((time <minTimes_[i] || time >maxTimes_[i] ) && energy>thresholds_[i])
248  {
249  clean=true;
250  return false;
251  }
252  break;
253  }
254  }
255  return true;
256  }
257 };
258 
259 
260 
261 
262 //
263 // Quality test that applies threshold as a function of depth
264 //
266  public:
268 
269  }
270 
272  PFRecHitQTestBase(iConfig)
273  {
274  std::vector<edm::ParameterSet> psets = iConfig.getParameter<std::vector<edm::ParameterSet> >("cuts");
275  for (unsigned int i=0;i<psets.size();++i) {
276  depths_.push_back(psets[i].getParameter<int>("depth"));
277  thresholds_.push_back(psets[i].getParameter<double>("threshold"));
278  }
279  }
280 
281  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
282  }
283 
284  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
285  return true;
286  }
287  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
288  return test(rh.detid(),rh.energy(),rh.time(),clean);
289  }
290 
291  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
292  return test(rh.detid(),rh.energy(),rh.time(),clean);
293  }
294  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
295  return test(rh.detid(),rh.energy(),rh.time(),clean);
296  }
297 
298  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
299  return true;
300  }
301 
302  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
303  return true;
304  }
305 
306  protected:
307  std::vector<int> depths_;
308  std::vector<double> thresholds_;
309 
310  bool test(unsigned aDETID,double energy,double time,bool& clean){
311  HcalDetId detid(aDETID);
312  for (unsigned int i=0;i<depths_.size();++i) {
313  if (detid.depth() == depths_[i]) {
314  if ( energy<thresholds_[i])
315  {
316  clean=false;
317  return false;
318  }
319  break;
320  }
321  }
322  return true;
323  }
324 };
325 
326 
327 
328 
329 
330 //
331 // Quality test that checks HO threshold applying different threshold in rings
332 //
334  public:
336 
337  }
338 
340  PFRecHitQTestBase(iConfig)
341  {
342  threshold0_ = iConfig.getParameter<double>("threshold_ring0");
343  threshold12_ = iConfig.getParameter<double>("threshold_ring12");
344  }
345 
346  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
347  }
348 
349  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
350  return true;
351  }
352  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
353  return true;
354  }
355 
356  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
357  return true;
358  }
359  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
360  HcalDetId detid(rh.detid());
361  if (abs(detid.ieta())<=4 && hit.energy()>threshold0_)
362  return true;
363  if (abs(detid.ieta())>4 && hit.energy()>threshold12_)
364  return true;
365 
366  return false;
367  }
368 
369  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
370  return true;
371  }
372 
373  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
374  return true;
375  }
376 
377  protected:
378  double threshold0_;
379  double threshold12_;
380 
381 };
382 
383 //
384 // Quality test that checks ecal quality cuts
385 //
387  public:
389 
390  }
391 
393  PFRecHitQTestBase(iConfig)
394  {
395  thresholdCleaning_ = iConfig.getParameter<double>("cleaningThreshold");
396  timingCleaning_ = iConfig.getParameter<bool>("timingCleaning");
397  topologicalCleaning_ = iConfig.getParameter<bool>("topologicalCleaning");
398  skipTTRecoveredHits_ = iConfig.getParameter<bool>("skipTTRecoveredHits");
399 
400  }
401 
402  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
403  }
404 
405  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
406  if (skipTTRecoveredHits_ && rh.checkFlag(EcalRecHit::kTowerRecovered))
407  {
408  clean=true;
409  return false;
410  }
411  if ( timingCleaning_ && rh.energy() > thresholdCleaning_ &&
413  clean=true;
414  return false;
415  }
416 
417  if ( topologicalCleaning_ &&
418  ( rh.checkFlag(EcalRecHit::kWeird) ||
420  clean=true;
421  return false;
422  }
423 
424  return true;
425  }
426 
427  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
428  return true;
429  }
430 
431  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
432  return true;
433 
434  }
435 
436  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
437  return true;
438  }
439 
440  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
441  return true;
442 
443  }
444 
445  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
446  return true;
447  }
448 
449 
450  protected:
455 
456 };
457 
458 //
459 // Quality test that checks ES quality cuts
460 //
462 
463  public:
465 
466  }
467 
469  PFRecHitQTestBase(iConfig)
470  {
471  thresholdCleaning_ = iConfig.getParameter<double>("cleaningThreshold");
472  topologicalCleaning_ = iConfig.getParameter<bool>("topologicalCleaning");
473  }
474 
475  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
476  }
477 
478  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
479 
480  if ( rh.energy() < thresholdCleaning_ ) {
481  clean=false;
482  return false;
483  }
484 
485  if ( topologicalCleaning_ &&
494  )) {
495  clean=false;
496  return false;
497  }
498 
499  return true;
500  }
501 
502  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
503  return true;
504  }
505 
506  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
507  return true;
508 
509  }
510 
511  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
512  return true;
513  }
514 
515  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
516  return true;
517 
518  }
519 
520  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
521  return true;
522  }
523 
524 
525  protected:
528 
529 };
530 
531 //
532 // Quality test that calibrates tower 29 of HCAL
533 //
535  public:
537 
538  }
539 
541  PFRecHitQTestBase(iConfig)
542  {
543  calibFactor_ =iConfig.getParameter<double>("calibFactor");
544  }
545 
546  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
547  }
548 
549  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean){
550  return true;
551  }
552  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean){
553  HcalDetId detId(hit.detId());
554  if (abs(detId.ieta())==29)
555  hit.setEnergy(hit.energy()*calibFactor_);
556  return true;
557 
558  }
559 
560  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean){
561  return true;
562 
563  }
564  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean){
565  return true;
566  }
567 
568  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean){
569  CaloTowerDetId detId(hit.detId());
570  if (detId.ietaAbs()==29)
571  hit.setEnergy(hit.energy()*calibFactor_);
572  return true;
573 
574  }
575 
576  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean){
577  return true;
578  }
579 
580  protected:
582 };
583 
585  public:
587 
588  }
589 
591  PFRecHitQTestBase(iConfig)
592  {
593  recHitEnergy_keV_ = iConfig.getParameter<bool>("recHitEnergyIs_keV");
594  threshold_ = iConfig.getParameter<double>("thresholdInMIPs");
595  mip_ = iConfig.getParameter<double>("mipValueInkeV");
596  recHitEnergyMultiplier_ = iConfig.getParameter<double>("recHitEnergyMultiplier");
597  }
598 
599  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
600  }
601 
602  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean) {
603  throw cms::Exception("WrongDetector")
604  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
605  return false;
606  }
607  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean) {
608  throw cms::Exception("WrongDetector")
609  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
610  return false;
611  }
612 
613  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean) {
614  throw cms::Exception("WrongDetector")
615  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
616  return false;
617  }
618  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean) {
619  throw cms::Exception("WrongDetector")
620  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
621  return false;
622  }
623 
624  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean) {
625  throw cms::Exception("WrongDetector")
626  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
627  return false;
628  }
629 
630  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean) {
631  const double newE = ( recHitEnergy_keV_ ?
632  1.0e-6*rh.energy()*recHitEnergyMultiplier_ :
633  rh.energy()*recHitEnergyMultiplier_ );
634  hit.setEnergy(newE);
635  return pass(hit);
636  }
637 
638  protected:
640  double threshold_,mip_,recHitEnergyMultiplier_;
641 
642  bool pass(const reco::PFRecHit& hit) {
643  const double hitValueInMIPs = 1e6*hit.energy()/mip_;
644  return hitValueInMIPs > threshold_;
645  }
646 };
647 
650  public:
652  geometryInstance_(""),
653  recHitEnergy_keV_(0.),
654  threshold_(0.),
655  mip_(0.),
656  recHitEnergyMultiplier_(0.) {
657  }
658 
660  PFRecHitQTestBase(iConfig),
661  geometryInstance_(iConfig.getParameter<std::string>("geometryInstance")),
662  recHitEnergy_keV_(iConfig.getParameter<bool>("recHitEnergyIs_keV")),
663  threshold_(iConfig.getParameter<double>("thresholdInMIPs")),
664  mip_(iConfig.getParameter<double>("mipValueInkeV")),
665  recHitEnergyMultiplier_(iConfig.getParameter<double>("recHitEnergyMultiplier")) {
666  }
667 
668  void beginEvent(const edm::Event& event,const edm::EventSetup& iSetup) {
670  iSetup.get<IdealGeometryRecord>().get(geometryInstance_,geoHandle);
671  ddd_ = &(geoHandle->topology().dddConstants());
672  }
673 
674  bool test(reco::PFRecHit& hit,const EcalRecHit& rh,bool& clean) {
675  throw cms::Exception("WrongDetector")
676  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
677  return false;
678  }
679  bool test(reco::PFRecHit& hit,const HBHERecHit& rh,bool& clean) {
680  throw cms::Exception("WrongDetector")
681  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
682  return false;
683  }
684 
685  bool test(reco::PFRecHit& hit,const HFRecHit& rh,bool& clean) {
686  throw cms::Exception("WrongDetector")
687  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
688  return false;
689  }
690  bool test(reco::PFRecHit& hit,const HORecHit& rh,bool& clean) {
691  throw cms::Exception("WrongDetector")
692  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
693  return false;
694  }
695 
696  bool test(reco::PFRecHit& hit,const CaloTower& rh,bool& clean) {
697  throw cms::Exception("WrongDetector")
698  << "PFRecHitQTestThresholdInMIPs only works for HGCAL!";
699  return false;
700  }
701 
702  bool test(reco::PFRecHit& hit,const HGCRecHit& rh,bool& clean) {
703  const double newE = ( recHitEnergy_keV_ ?
704  1.0e-6*rh.energy()*recHitEnergyMultiplier_ :
705  rh.energy()*recHitEnergyMultiplier_ );
706  const int wafer = HGCalDetId(rh.detid()).wafer();
707  const float mult = (float) ddd_->waferTypeL(wafer); // 1 for 100um, 2 for 200um, 3 for 300um
708  hit.setEnergy(newE);
709  return pass(hit,mult);
710  }
711 
712  protected:
714  const bool recHitEnergy_keV_;
715  const double threshold_,mip_,recHitEnergyMultiplier_;
717 
718  bool pass(const reco::PFRecHit& hit, const float mult) {
719  const double hitValueInMIPs = 1e6*hit.energy()/(mult*mip_);
720  return hitValueInMIPs > threshold_;
721  }
722 };
723 
724 #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)
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:49
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:21
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 pass(const reco::PFRecHit &hit, const float mult)
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(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean)
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
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)
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)
const HcalTopology * theHcalTopology_
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:108
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
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:189
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)
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:96
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
PFRecHitQTestHCALCalib29(const edm::ParameterSet &iConfig)
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean)
uint32_t flags() const
Definition: CaloRecHit.h:22
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)
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)
const HGCalDDDConstants & dddConstants() const
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)
PFRecHitQTestThresholdInThicknessNormalizedMIPs(const edm::ParameterSet &iConfig)
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
std::vector< int > depths_
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup)
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)
HcalDetId idFront(const HcalDetId &id) const
Definition: HcalTopology.h:170
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean)
bool test(unsigned aDETID, double energy, int flags, bool &clean)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean)
uint32_t getValue() const
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
bool withSpecialRBXHBHE() const
Definition: HcalTopology.h:162
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)
T const * product() const
Definition: ESHandle.h:86
std::vector< int > flags_
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean)
Definition: event.py:1
PFRecHitQTestES(const edm::ParameterSet &iConfig)
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean)