From 21dfb5047939eaafb5aa604c7f8517112e2b7c29 Mon Sep 17 00:00:00 2001 From: Igor Date: Wed, 27 May 2015 03:10:31 +0200 Subject: [PATCH 1/4] removing old HBHENoiseFilter --- .../RecoAlgos/interface/HBHENoiseFilter.h | 54 ------- .../RecoAlgos/plugins/HBHENoiseFilter.cc | 151 ------------------ .../RecoAlgos/python/HBHENoiseFilter_cfi.py | 32 ++-- 3 files changed, 10 insertions(+), 227 deletions(-) delete mode 100644 CommonTools/RecoAlgos/interface/HBHENoiseFilter.h delete mode 100644 CommonTools/RecoAlgos/plugins/HBHENoiseFilter.cc diff --git a/CommonTools/RecoAlgos/interface/HBHENoiseFilter.h b/CommonTools/RecoAlgos/interface/HBHENoiseFilter.h deleted file mode 100644 index 77222500c0af6..0000000000000 --- a/CommonTools/RecoAlgos/interface/HBHENoiseFilter.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef __HBHE_NOISE_FILTER_H__ -#define __HBHE_NOISE_FILTER_H__ - - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/METReco/interface/HcalNoiseSummary.h" -#include "DataFormats/JetReco/interface/PFJetCollection.h" - -// -// class declaration -// - -class HBHENoiseFilter : public edm::EDFilter { - public: - explicit HBHENoiseFilter(const edm::ParameterSet&); - ~HBHENoiseFilter(); - - private: - virtual bool filter(edm::Event&, const edm::EventSetup&) override; - - // ----------member data --------------------------- - - // parameters - edm::EDGetTokenT noisetoken_; - double minRatio_, maxRatio_; - int minHPDHits_, minRBXHits_, minHPDNoOtherHits_; - int minZeros_; - double minHighEHitTime_, maxHighEHitTime_; - double maxRBXEMF_; - int minNumIsolatedNoiseChannels_; - double minIsolatedNoiseSumE_, minIsolatedNoiseSumEt_; - bool useTS4TS5_; - bool useRBXRechitR45Loose_; - bool useRBXRechitR45Tight_; - - bool IgnoreTS4TS5ifJetInLowBVRegion_; - edm::InputTag jetlabel_; - edm::EDGetTokenT jettoken_; - int maxjetindex_; - double maxNHF_; -}; - -#endif diff --git a/CommonTools/RecoAlgos/plugins/HBHENoiseFilter.cc b/CommonTools/RecoAlgos/plugins/HBHENoiseFilter.cc deleted file mode 100644 index 9ffbbf15b5e51..0000000000000 --- a/CommonTools/RecoAlgos/plugins/HBHENoiseFilter.cc +++ /dev/null @@ -1,151 +0,0 @@ -// -*- C++ -*- -// -// Package: HBHENoiseFilter -// Class: HBHENoiseFilter -// -/**\class HBHENoiseFilter - - Description: Filter that identifies events containing an RBX with bad pulse-shape, timing, hit multiplicity, and ADC 0 counts - Designed to reduce noise rate by factor of 100 - - Implementation: - Use the HcalNoiseSummary to make cuts on an event-by-event basis -*/ -// -// Original Author: John Paul Chou (Brown) -// -// - -#include - -#include "CommonTools/RecoAlgos/interface/HBHENoiseFilter.h" - -// -// constants, enums and typedefs -// - -// -// static data member definitions -// - -// -// constructors and destructor -// - -HBHENoiseFilter::HBHENoiseFilter(const edm::ParameterSet& iConfig) -{ - //now do what ever initialization is needed - noisetoken_ = consumes(iConfig.getParameter("noiselabel")); - minRatio_ = iConfig.getParameter("minRatio"); - maxRatio_ = iConfig.getParameter("maxRatio"); - minHPDHits_ = iConfig.getParameter("minHPDHits"); - minRBXHits_ = iConfig.getParameter("minRBXHits"); - minHPDNoOtherHits_ = iConfig.getParameter("minHPDNoOtherHits"); - minZeros_ = iConfig.getParameter("minZeros"); - minHighEHitTime_ = iConfig.getParameter("minHighEHitTime"); - maxHighEHitTime_ = iConfig.getParameter("maxHighEHitTime"); - maxRBXEMF_ = iConfig.getParameter("maxRBXEMF"); - minNumIsolatedNoiseChannels_ = iConfig.getParameter("minNumIsolatedNoiseChannels"); - minIsolatedNoiseSumE_ = iConfig.getParameter("minIsolatedNoiseSumE"); - minIsolatedNoiseSumEt_ = iConfig.getParameter("minIsolatedNoiseSumEt"); - useTS4TS5_ = iConfig.getParameter("useTS4TS5"); - useRBXRechitR45Loose_ = iConfig.getParameter("useRBXRechitR45Loose"); - useRBXRechitR45Tight_ = iConfig.getParameter("useRBXRechitR45Tight"); - - IgnoreTS4TS5ifJetInLowBVRegion_ = iConfig.getParameter("IgnoreTS4TS5ifJetInLowBVRegion"); - jetlabel_ = iConfig.getParameter("jetlabel"); - jettoken_ = mayConsume(jetlabel_); - maxjetindex_ = iConfig.getParameter("maxjetindex"); - maxNHF_ = iConfig.getParameter("maxNHF"); - -} - - -HBHENoiseFilter::~HBHENoiseFilter() -{ - -} - - -// -// member functions -// - -// ------------ method called on each new Event ------------ -bool -HBHENoiseFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) -{ - using namespace edm; - - // get the Noise summary object - edm::Handle summary_h; - iEvent.getByToken(noisetoken_, summary_h); - if(!summary_h.isValid()) { - throw edm::Exception(edm::errors::ProductNotFound) << " could not find HcalNoiseSummary.\n"; - return true; - } - const HcalNoiseSummary summary = *summary_h; - - // if(summary.HasBadRBXTS4TS5() == true) std::cout << "TS4TS5 rejection!" << std::endl; - // else std::cout << "TS4TS5 passing!" << std::endl; - - - // One HBHE region has HPD with low BV, which increases hits in HPD, and - // often causes otherwise good events to be flagged as noise. - - bool goodJetFoundInLowBVRegion=false; // checks whether a jet is in a low BV region, where false noise flagging rate is higher. - if ( IgnoreTS4TS5ifJetInLowBVRegion_==true) - { - edm::Handle pfjet_h; - iEvent.getByToken(jettoken_, pfjet_h); - if (pfjet_h.isValid()) - { - // Loop over all jets up to (and including) maxjetindex. - // If jet found in low-BV region, set goodJetFoundInLowBVRegion = true - int jetindex=0; - for( reco::PFJetCollection::const_iterator jet = pfjet_h->begin(); jet != pfjet_h->end(); ++jet) - { - if (jetindex>maxjetindex_) break; // only look at first N jets (N specified by user) - // Check whether jet is in low-BV region (0eta()>0 && jet->eta()<1.4 && - jet->phi()>-1.8 && jet->phi()<-1.4) - { - if (maxNHF_<0 || (maxNHF_>0 && jet->neutralHadronEnergyFraction()maxRatio_) return false; - if(summary.maxHPDHits()>=minHPDHits_) return false; - if(summary.maxRBXHits()>=minRBXHits_) return false; - if(summary.maxHPDNoOtherHits()>=minHPDNoOtherHits_) return false; - if(summary.maxZeros()>=minZeros_) return false; - if(summary.min25GeVHitTime()maxHighEHitTime_) return false; - if(summary.minRBXEMF()=minNumIsolatedNoiseChannels_) return false; - if(summary.isolatedNoiseSumE()>=minIsolatedNoiseSumE_) return false; - if(summary.isolatedNoiseSumEt()>=minIsolatedNoiseSumEt_) return false; - // Only use TS4TS5 test if jet is not in low BV region - if(useTS4TS5_ && summary.HasBadRBXTS4TS5() == true && !goodJetFoundInLowBVRegion) return false; - if(useRBXRechitR45Loose_ && summary.HasBadRBXRechitR45Loose() == true && !goodJetFoundInLowBVRegion) return false; - if(useRBXRechitR45Tight_ && summary.HasBadRBXRechitR45Tight() == true && !goodJetFoundInLowBVRegion) return false; - - return true; -} - -//define this as a plug-in -DEFINE_FWK_MODULE(HBHENoiseFilter); diff --git a/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py b/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py index 24ed3073a7ef3..60f7cbe42d553 100644 --- a/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py +++ b/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py @@ -1,25 +1,13 @@ +# +# This is a replacement for the original HBHENoiseFilter configuration. +# See https://twiki.cern.ch/twiki/bin/viewauth/CMS/HCALNoiseFilterRecipe. +# Note that this replacement relies on the HBHENoiseFilterResultProducer +# output. +# import FWCore.ParameterSet.Config as cms HBHENoiseFilter = cms.EDFilter( - 'HBHENoiseFilter', - noiselabel = cms.InputTag('hcalnoise'), - minRatio = cms.double(-999.0), - maxRatio = cms.double(999.0), - minHPDHits = cms.int32(17), - minRBXHits = cms.int32(999), - minHPDNoOtherHits = cms.int32(10), - minZeros = cms.int32(10), - minHighEHitTime = cms.double(-9999.0), - maxHighEHitTime = cms.double(9999.0), - maxRBXEMF = cms.double(-999.0), - minNumIsolatedNoiseChannels = cms.int32(10), - minIsolatedNoiseSumE = cms.double(50.0), - minIsolatedNoiseSumEt = cms.double(25.0), - useTS4TS5 = cms.bool(False), - useRBXRechitR45Loose = cms.bool(False), - useRBXRechitR45Tight = cms.bool(False), - IgnoreTS4TS5ifJetInLowBVRegion=cms.bool(True), - jetlabel = cms.InputTag('ak4PFJets'), - maxjetindex = cms.int32(0), # maximum jet index that will be checked for 'IgnoreTS4TS5ifJetInLowBVRegion' - maxNHF = cms.double(0.9) # maximum allowed jet->neutralHadronEnergyFraction() - ) + 'BooleanFlagFilter', + inputLabel = cms.InputTag('HBHENoiseFilterResultProducer','HBHENoiseFilterResult'), + reverseDecision = cms.bool(False) +) From 14b3d6d2202753ec508088d8a45b0e28cfe5e912 Mon Sep 17 00:00:00 2001 From: Igor Date: Wed, 27 May 2015 06:08:22 +0200 Subject: [PATCH 2/4] fixing MET filter paths --- CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py | 11 ++++++++--- .../PatAlgos/python/slimming/metFilterPaths_cff.py | 6 +++--- RecoMET/METFilters/python/metFilters_cff.py | 1 + 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py b/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py index 60f7cbe42d553..ecfb09bad3e86 100644 --- a/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py +++ b/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py @@ -1,13 +1,18 @@ # # This is a replacement for the original HBHENoiseFilter configuration. # See https://twiki.cern.ch/twiki/bin/viewauth/CMS/HCALNoiseFilterRecipe. -# Note that this replacement relies on the HBHENoiseFilterResultProducer -# output. +# Note that this replacement relies on having the HcalNoiseSummary in the +# event record but not necessarily HBHENoiseFilterResult. # import FWCore.ParameterSet.Config as cms +# Module which will remake HBHENoiseFilterResult +from CommonTools.RecoAlgos.HBHENoiseFilterResultProducer_cfi import HBHENoiseFilterResultProducer +MakeHBHENoiseFilterResult = HBHENoiseFilterResultProducer.clone() + +# Filter on the standard HCAL noise decision HBHENoiseFilter = cms.EDFilter( 'BooleanFlagFilter', - inputLabel = cms.InputTag('HBHENoiseFilterResultProducer','HBHENoiseFilterResult'), + inputLabel = cms.InputTag('MakeHBHENoiseFilterResult','HBHENoiseFilterResult'), reverseDecision = cms.bool(False) ) diff --git a/PhysicsTools/PatAlgos/python/slimming/metFilterPaths_cff.py b/PhysicsTools/PatAlgos/python/slimming/metFilterPaths_cff.py index 2d66f6a65d57b..20a16ad1fd427 100644 --- a/PhysicsTools/PatAlgos/python/slimming/metFilterPaths_cff.py +++ b/PhysicsTools/PatAlgos/python/slimming/metFilterPaths_cff.py @@ -2,12 +2,12 @@ ## We don't use "import *" because the cff contains some modules for which the C++ class doesn't exist ## and this triggers an error under unscheduled mode -from RecoMET.METFilters.metFilters_cff import HBHENoiseFilter, CSCTightHaloFilter, hcalLaserEventFilter, EcalDeadCellTriggerPrimitiveFilter, eeBadScFilter, ecalLaserCorrFilter +from RecoMET.METFilters.metFilters_cff import MakeHBHENoiseFilterResult, HBHENoiseFilter, CSCTightHaloFilter, hcalLaserEventFilter, EcalDeadCellTriggerPrimitiveFilter, eeBadScFilter, ecalLaserCorrFilter from RecoMET.METFilters.metFilters_cff import goodVertices, trackingFailureFilter, trkPOGFilters, manystripclus53X, toomanystripclus53X, logErrorTooManyClusters from RecoMET.METFilters.metFilters_cff import metFilters # individual filters -Flag_HBHENoiseFilter = cms.Path(HBHENoiseFilter) +Flag_HBHENoiseFilter = cms.Path(MakeHBHENoiseFilterResult * HBHENoiseFilter) Flag_CSCTightHaloFilter = cms.Path(CSCTightHaloFilter) Flag_hcalLaserEventFilter = cms.Path(hcalLaserEventFilter) Flag_EcalDeadCellTriggerPrimitiveFilter = cms.Path(EcalDeadCellTriggerPrimitiveFilter) @@ -27,7 +27,7 @@ def miniAOD_customizeMETFiltersFastSim(process): """Replace some MET filters that don't work in FastSim with trivial bools""" - for X in 'CSCTightHaloFilter', 'HBHENoiseFilter': + for X in 'CSCTightHaloFilter', 'HBHENoiseFilter', 'MakeHBHENoiseFilterResult': process.globalReplace(X, cms.EDFilter("HLTBool", result=cms.bool(True))) for X in 'manystripclus53X', 'toomanystripclus53X', 'logErrorTooManyClusters': process.globalReplace(X, cms.EDFilter("HLTBool", result=cms.bool(False))) diff --git a/RecoMET/METFilters/python/metFilters_cff.py b/RecoMET/METFilters/python/metFilters_cff.py index 8205342ab1064..d6b58b006e629 100644 --- a/RecoMET/METFilters/python/metFilters_cff.py +++ b/RecoMET/METFilters/python/metFilters_cff.py @@ -43,6 +43,7 @@ ## good events. metFilters = cms.Sequence( + MakeHBHENoiseFilterResult * HBHENoiseFilter * CSCTightHaloFilter * hcalLaserEventFilter * From ae0c416c779900b8dd5749693a2d8e1dcd96a8fd Mon Sep 17 00:00:00 2001 From: Igor Date: Wed, 27 May 2015 12:01:50 +0200 Subject: [PATCH 3/4] removing dependence on HBHENoiseFilter.h --- DQMOffline/JetMET/interface/CaloTowerAnalyzer.h | 1 - DQMOffline/JetMET/interface/METAnalyzer.h | 1 - DQMOffline/JetMET/src/CaloTowerAnalyzer.cc | 1 - RecoJets/JetAnalyzers/src/myFilter.cc | 1 - RecoJets/JetAnalyzers/src/myJetAna.cc | 1 - 5 files changed, 5 deletions(-) diff --git a/DQMOffline/JetMET/interface/CaloTowerAnalyzer.h b/DQMOffline/JetMET/interface/CaloTowerAnalyzer.h index d3bfc1fe61ec8..f499cafc9bc15 100644 --- a/DQMOffline/JetMET/interface/CaloTowerAnalyzer.h +++ b/DQMOffline/JetMET/interface/CaloTowerAnalyzer.h @@ -15,7 +15,6 @@ #include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/CaloTowers/interface/CaloTower.h" #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h" -#include "CommonTools/RecoAlgos/interface/HBHENoiseFilter.h" #include #include diff --git a/DQMOffline/JetMET/interface/METAnalyzer.h b/DQMOffline/JetMET/interface/METAnalyzer.h index e3ed007ea72ef..3a9e8851723ec 100644 --- a/DQMOffline/JetMET/interface/METAnalyzer.h +++ b/DQMOffline/JetMET/interface/METAnalyzer.h @@ -73,7 +73,6 @@ #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "DQMOffline/JetMET/interface/JetMETDQMDCSFilter.h" -#include "CommonTools/RecoAlgos/interface/HBHENoiseFilter.h" #include "PhysicsTools/SelectorUtils/interface/JetIDSelectionFunctor.h" #include "PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h" #include "DQMServices/Core/interface/DQMEDAnalyzer.h" diff --git a/DQMOffline/JetMET/src/CaloTowerAnalyzer.cc b/DQMOffline/JetMET/src/CaloTowerAnalyzer.cc index 85bff3782a1b1..3c70c30832304 100644 --- a/DQMOffline/JetMET/src/CaloTowerAnalyzer.cc +++ b/DQMOffline/JetMET/src/CaloTowerAnalyzer.cc @@ -54,7 +54,6 @@ #include #include #include -#include "CommonTools/RecoAlgos/interface/HBHENoiseFilter.h" using namespace reco; using namespace edm; diff --git a/RecoJets/JetAnalyzers/src/myFilter.cc b/RecoJets/JetAnalyzers/src/myFilter.cc index 98d887a3ee2a9..d0492193a4c0a 100644 --- a/RecoJets/JetAnalyzers/src/myFilter.cc +++ b/RecoJets/JetAnalyzers/src/myFilter.cc @@ -37,7 +37,6 @@ // include files -#include "CommonTools/RecoAlgos/interface/HBHENoiseFilter.h" #include "DataFormats/METReco/interface/HcalNoiseSummary.h" diff --git a/RecoJets/JetAnalyzers/src/myJetAna.cc b/RecoJets/JetAnalyzers/src/myJetAna.cc index 88307d2795463..69f5d72309fed 100644 --- a/RecoJets/JetAnalyzers/src/myJetAna.cc +++ b/RecoJets/JetAnalyzers/src/myJetAna.cc @@ -67,7 +67,6 @@ // #include "DataFormats/Scalers/interface/DcsStatus.h" // include files -#include "CommonTools/RecoAlgos/interface/HBHENoiseFilter.h" #include "DataFormats/METReco/interface/HcalNoiseSummary.h" #include "DataFormats/METReco/interface/HcalCaloFlagLabels.h" From 05acff6ad184ee34bcd98719b88912e9f46cb238 Mon Sep 17 00:00:00 2001 From: Igor Date: Wed, 27 May 2015 20:08:20 +0200 Subject: [PATCH 4/4] sorry, forgot that module cloning does not copy customizations --- CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py | 6 ++++++ .../Configuration/python/postLS1Customs.py | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py b/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py index ecfb09bad3e86..fdffa92d8822a 100644 --- a/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py +++ b/CommonTools/RecoAlgos/python/HBHENoiseFilter_cfi.py @@ -16,3 +16,9 @@ inputLabel = cms.InputTag('MakeHBHENoiseFilterResult','HBHENoiseFilterResult'), reverseDecision = cms.bool(False) ) + +# Customize MakeHBHENoiseFilterResult in the same manner +# as HBHENoiseFilterResultProducer +from Configuration.StandardSequences.Eras import eras +eras.run2_common.toModify(MakeHBHENoiseFilterResult, IgnoreTS4TS5ifJetInLowBVRegion=False) +eras.run2_25ns_specific.toModify(MakeHBHENoiseFilterResult, defaultDecision="HBHENoiseFilterResultRun2Loose") diff --git a/SLHCUpgradeSimulations/Configuration/python/postLS1Customs.py b/SLHCUpgradeSimulations/Configuration/python/postLS1Customs.py index 1d2c52ccb1504..8733a3877fdd7 100644 --- a/SLHCUpgradeSimulations/Configuration/python/postLS1Customs.py +++ b/SLHCUpgradeSimulations/Configuration/python/postLS1Customs.py @@ -120,6 +120,8 @@ def customise_DQM(process): # Turn off "low bias voltage" region in HCAL noise filters if hasattr(process,'HBHENoiseFilterResultProducer'): process.HBHENoiseFilterResultProducer.IgnoreTS4TS5ifJetInLowBVRegion = cms.bool(False) + if hasattr(process,'MakeHBHENoiseFilterResult'): + process.MakeHBHENoiseFilterResult.IgnoreTS4TS5ifJetInLowBVRegion = cms.bool(False) return process @@ -127,6 +129,8 @@ def customise_DQM_25ns(process): # Switch the default decision of the HCAL noise filter if hasattr(process,'HBHENoiseFilterResultProducer'): process.HBHENoiseFilterResultProducer.defaultDecision = cms.string("HBHENoiseFilterResultRun2Loose") + if hasattr(process,'MakeHBHENoiseFilterResult'): + process.MakeHBHENoiseFilterResult.defaultDecision = cms.string("HBHENoiseFilterResultRun2Loose") return process