File indexing completed on 2023-03-17 11:18:34
0001 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0002 #include "RecoJets/JetProducers/interface/AnomalousTower.h"
0003 #include "DataFormats/CaloTowers/interface/CaloTower.h"
0004
0005 #define init_param(type, varname) varname(ps.getParameter<type>(#varname))
0006
0007 AnomalousTower::AnomalousTower(const edm::ParameterSet& ps)
0008 : init_param(unsigned, maxBadEcalCells),
0009 init_param(unsigned, maxRecoveredEcalCells),
0010 init_param(unsigned, maxProblematicEcalCells),
0011 init_param(unsigned, maxBadHcalCells),
0012 init_param(unsigned, maxRecoveredHcalCells),
0013 init_param(unsigned, maxProblematicHcalCells) {}
0014
0015 bool AnomalousTower::operator()(const reco::Candidate& input) const {
0016 const CaloTower* tower = dynamic_cast<const CaloTower*>(&input);
0017 if (tower)
0018 return tower->numBadEcalCells() > maxBadEcalCells || tower->numRecoveredEcalCells() > maxRecoveredEcalCells ||
0019 tower->numProblematicEcalCells() > maxProblematicEcalCells || tower->numBadHcalCells() > maxBadHcalCells ||
0020 tower->numRecoveredHcalCells() > maxRecoveredHcalCells ||
0021 tower->numProblematicHcalCells() > maxProblematicHcalCells;
0022 else
0023 return false;
0024 }