diff --git a/PhysicsTools/IsolationAlgos/plugins/CandIsoDepositProducer.cc b/PhysicsTools/IsolationAlgos/plugins/CandIsoDepositProducer.cc index 191b7cd1f51c3..2bd006abcdf2c 100644 --- a/PhysicsTools/IsolationAlgos/plugins/CandIsoDepositProducer.cc +++ b/PhysicsTools/IsolationAlgos/plugins/CandIsoDepositProducer.cc @@ -1,26 +1,44 @@ -#include "PhysicsTools/IsolationAlgos/plugins/CandIsoDepositProducer.h" - -// Framework +#include "DataFormats/Common/interface/AssociationVector.h" +#include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/Common/interface/RefToBaseProd.h" +#include "DataFormats/GsfTrackReco/interface/GsfTrack.h" +#include "DataFormats/MuonReco/interface/Muon.h" +#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" +#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" +#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" +#include "DataFormats/RecoCandidate/interface/RecoCandidate.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" +#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractorFactory.h" -#include "FWCore/Framework/interface/ESHandle.h" +#include -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/MuonReco/interface/Muon.h" +class CandIsoDepositProducer : public edm::stream::EDProducer<> { +public: + CandIsoDepositProducer(const edm::ParameterSet &); -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" -#include "DataFormats/GsfTrackReco/interface/GsfTrack.h" + ~CandIsoDepositProducer() override; -#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" -#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractorFactory.h" + void produce(edm::Event &, const edm::EventSetup &) override; -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include +private: + inline const reco::Track *extractTrack(const reco::Candidate &cand, reco::Track *dummyStorage) const; + enum TrackType { FakeT, BestT, StandAloneMuonT, CombinedMuonT, TrackT, GsfT, CandidateT }; + edm::ParameterSet theConfig; + edm::EDGetTokenT > theCandCollectionToken; + TrackType theTrackType; + std::vector theDepositNames; + bool theMultipleDepositsFlag; + std::unique_ptr theExtractor; +}; using namespace edm; using namespace reco; @@ -177,4 +195,5 @@ void CandIsoDepositProducer::produce(Event &event, const EventSetup &eventSetup) } //! for(iDep - -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" - -#include - -namespace edm { - class Event; -} -namespace edm { - class EventSetup; -} - -class CandIsoDepositProducer : public edm::stream::EDProducer<> { -public: - CandIsoDepositProducer(const edm::ParameterSet &); - - ~CandIsoDepositProducer() override; - - void produce(edm::Event &, const edm::EventSetup &) override; - -private: - inline const reco::Track *extractTrack(const reco::Candidate &cand, reco::Track *dummyStorage) const; - enum TrackType { FakeT, BestT, StandAloneMuonT, CombinedMuonT, TrackT, GsfT, CandidateT }; - edm::ParameterSet theConfig; - edm::EDGetTokenT > theCandCollectionToken; - TrackType theTrackType; - std::vector theDepositNames; - bool theMultipleDepositsFlag; - std::unique_ptr theExtractor; -}; -#endif diff --git a/PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.cc b/PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.cc index 651dbca49fd3f..58d39d1427464 100644 --- a/PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.cc +++ b/PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.cc @@ -1,27 +1,63 @@ -#include "PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.h" - -// Framework -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" +#include "CommonTools/Utils/interface/StringObjectFunction.h" +#include "DataFormats/Candidate/interface/CandAssociation.h" +#include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/Framework/interface/ESHandle.h" - -#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/Common/interface/OwnVector.h" #include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" #include "DataFormats/RecoCandidate/interface/IsoDeposit.h" +#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" #include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" #include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" - -#include "DataFormats/Candidate/interface/CandAssociation.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "PhysicsTools/IsolationAlgos/interface/EventDependentAbsVeto.h" +#include "PhysicsTools/IsolationAlgos/interface/IsoDepositVetoFactory.h" + #include #include -#include "PhysicsTools/IsolationAlgos/interface/IsoDepositVetoFactory.h" +class CandIsolatorFromDeposits : public edm::stream::EDProducer<> { +public: + typedef edm::ValueMap CandDoubleMap; + + enum Mode { Sum, SumRelative, Sum2, Sum2Relative, Max, MaxRelative, Count, NearestDR, MeanDR, SumDR }; + CandIsolatorFromDeposits(const edm::ParameterSet &); + + ~CandIsolatorFromDeposits() override; + + void produce(edm::Event &, const edm::EventSetup &) override; + +private: + class SingleDeposit { + public: + SingleDeposit(const edm::ParameterSet &, edm::ConsumesCollector &&iC); + void cleanup(); + void open(const edm::Event &iEvent, const edm::EventSetup &iSetup); + double compute(const reco::CandidateBaseRef &cand); + const reco::IsoDepositMap &map() { return *hDeps_; } + + private: + Mode mode_; + edm::EDGetTokenT srcToken_; + double deltaR_; + bool usesFunction_; + double weight_; + StringObjectFunction weightExpr_; + reco::isodeposit::AbsVetos vetos_; + reco::isodeposit::EventDependentAbsVetos evdepVetos_; // note: these are a subset of the above. Don't delete twice! + bool skipDefaultVeto_; + edm::Handle hDeps_; // transient + }; + // datamembers + std::vector sources_; +}; using namespace edm; using namespace reco; @@ -193,4 +229,5 @@ void CandIsolatorFromDeposits::produce(Event &event, const EventSetup &eventSetu event.put(std::move(ret)); } +#include "FWCore/Framework/interface/MakerMacros.h" DEFINE_FWK_MODULE(CandIsolatorFromDeposits); diff --git a/PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.h b/PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.h deleted file mode 100644 index 7b4ec440489d2..0000000000000 --- a/PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef MuonIsolationProducers_CandIsolatorFromDeposits_H -#define MuonIsolationProducers_CandIsolatorFromDeposits_H - -#include "FWCore/Framework/interface/stream/EDProducer.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "PhysicsTools/IsolationAlgos/interface/EventDependentAbsVeto.h" - -#include "DataFormats/Candidate/interface/Candidate.h" -#include "CommonTools/Utils/interface/StringObjectFunction.h" -#include "DataFormats/Common/interface/OwnVector.h" - -#include - -namespace edm { - class Event; -} -namespace edm { - class EventSetup; -} - -class CandIsolatorFromDeposits : public edm::stream::EDProducer<> { -public: - typedef edm::ValueMap CandDoubleMap; - - enum Mode { Sum, SumRelative, Sum2, Sum2Relative, Max, MaxRelative, Count, NearestDR, MeanDR, SumDR }; - CandIsolatorFromDeposits(const edm::ParameterSet &); - - ~CandIsolatorFromDeposits() override; - - void produce(edm::Event &, const edm::EventSetup &) override; - -private: - class SingleDeposit { - public: - SingleDeposit(const edm::ParameterSet &, edm::ConsumesCollector &&iC); - void cleanup(); - void open(const edm::Event &iEvent, const edm::EventSetup &iSetup); - double compute(const reco::CandidateBaseRef &cand); - const reco::IsoDepositMap &map() { return *hDeps_; } - - private: - Mode mode_; - edm::EDGetTokenT srcToken_; - double deltaR_; - bool usesFunction_; - double weight_; - StringObjectFunction weightExpr_; - reco::isodeposit::AbsVetos vetos_; - reco::isodeposit::EventDependentAbsVetos evdepVetos_; // note: these are a subset of the above. Don't delete twice! - bool skipDefaultVeto_; - edm::Handle hDeps_; // transient - }; - // datamembers - std::vector sources_; -}; -#endif diff --git a/PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.cc b/PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.cc index 22ffc2cc39964..c9160daa4a864 100644 --- a/PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.cc +++ b/PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.cc @@ -1,17 +1,105 @@ -#include "CandViewExtractor.h" - -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" +#include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/Math/interface/deltaR.h" +#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" +#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" #include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Math/interface/deltaR.h" +#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" + +#include +#include + +namespace muonisolation { + + class CandViewExtractor : public reco::isodeposit::IsoDepositExtractor { + public: + CandViewExtractor(){}; + CandViewExtractor(const edm::ParameterSet& par, edm::ConsumesCollector&& iC); + + ~CandViewExtractor() override {} + + void fillVetos(const edm::Event& ev, const edm::EventSetup& evSetup, const reco::TrackCollection& cand) override {} + + /* virtual reco::IsoDeposit::Vetos vetos(const edm::Event & ev, + const edm::EventSetup & evSetup, const reco::Candidate & cand) const; + + virtual reco::IsoDeposit::Vetos vetos(const edm::Event & ev, + const edm::EventSetup & evSetup, const reco::Track & cand) const; +*/ + + void initEvent(const edm::Event& ev, const edm::EventSetup& evSetup) override; + + reco::IsoDeposit deposit(const edm::Event& ev, + const edm::EventSetup& evSetup, + const reco::Track& muon) const override { + return depositFromObject(ev, evSetup, muon); + } + + reco::IsoDeposit deposit(const edm::Event& ev, + const edm::EventSetup& evSetup, + const reco::Candidate& muon) const override { + return depositFromObject(ev, evSetup, muon); + } + + private: + reco::IsoDeposit::Veto veto(const reco::IsoDeposit::Direction& dir) const; + + template + reco::IsoDeposit depositFromObject(const edm::Event& ev, const edm::EventSetup& evSetup, const T& cand) const; + + // Parameter set + edm::EDGetTokenT > theCandViewToken; // Track Collection Label + std::string theDepositLabel; // name for deposit + edm::Handle > theCandViewH; //cached handle + edm::Event::CacheIdentifier_t theCacheID; //event cacheID + double theDiff_r; // transverse distance to vertex + double theDiff_z; // z distance to vertex + double theDR_Max; // Maximum cone angle for deposits + double theDR_Veto; // Veto cone angle + }; + +} // namespace muonisolation using namespace edm; using namespace reco; using namespace muonisolation; -#include "CandViewExtractor.icc" +template +IsoDeposit CandViewExtractor::depositFromObject(const Event& event, const EventSetup& eventSetup, const T& cand) const { + static const std::string metname = "MuonIsolation|CandViewExtractor"; + + reco::isodeposit::Direction candDir(cand.eta(), cand.phi()); + IsoDeposit deposit(candDir); + deposit.setVeto(veto(candDir)); + deposit.addCandEnergy(cand.pt()); + + Handle > candViewH; + if (theCacheID != event.cacheIdentifier()) { + event.getByToken(theCandViewToken, candViewH); + } else { + candViewH = theCandViewH; + } + + double eta = cand.eta(), phi = cand.phi(); + const reco::Particle::Point& vtx = cand.vertex(); + LogDebug(metname) << "cand eta=" << eta << " phi=" << phi << " vtx=" << vtx; + for (View::const_iterator it = candViewH->begin(), ed = candViewH->end(); it != ed; ++it) { + double dR = deltaR(it->eta(), it->phi(), eta, phi); + LogDebug(metname) << "pdgid=" << it->pdgId() << " vtx=" << it->vertex() << " dR=" << dR + << " dvz=" << it->vz() - cand.vz() << " drho=" << (it->vertex() - vtx).Rho(); + if ((dR < theDR_Max) && (dR > theDR_Veto) && (std::abs(it->vz() - cand.vz()) < theDiff_z) && + ((it->vertex() - vtx).Rho() < theDiff_r)) { + // ok + reco::isodeposit::Direction dirTrk(it->eta(), it->phi()); + deposit.addDeposit(dirTrk, it->pt()); + LogDebug(metname) << "pt=" << it->pt(); + } + } + + return deposit; +} CandViewExtractor::CandViewExtractor(const ParameterSet& par, edm::ConsumesCollector&& iC) : theCandViewToken(iC.consumes >(par.getParameter("inputCandView"))), @@ -46,5 +134,4 @@ void CandViewExtractor::initEvent(const edm::Event& ev, const edm::EventSetup& e #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractorFactory.h" -#include "CandViewExtractor.h" DEFINE_EDM_PLUGIN(IsoDepositExtractorFactory, muonisolation::CandViewExtractor, "CandViewExtractor"); diff --git a/PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.h b/PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.h deleted file mode 100644 index cc96c62cb3500..0000000000000 --- a/PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef MuonIsolation_CandViewExtractor_H -#define MuonIsolation_CandViewExtractor_H - -#include -#include - -#include "FWCore/Framework/interface/ConsumesCollector.h" - -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" - -namespace muonisolation { - - class CandViewExtractor : public reco::isodeposit::IsoDepositExtractor { - public: - CandViewExtractor(){}; - CandViewExtractor(const edm::ParameterSet& par, edm::ConsumesCollector&& iC); - - ~CandViewExtractor() override {} - - void fillVetos(const edm::Event& ev, const edm::EventSetup& evSetup, const reco::TrackCollection& cand) override {} - - /* virtual reco::IsoDeposit::Vetos vetos(const edm::Event & ev, - const edm::EventSetup & evSetup, const reco::Candidate & cand) const; - - virtual reco::IsoDeposit::Vetos vetos(const edm::Event & ev, - const edm::EventSetup & evSetup, const reco::Track & cand) const; -*/ - - void initEvent(const edm::Event& ev, const edm::EventSetup& evSetup) override; - - reco::IsoDeposit deposit(const edm::Event& ev, - const edm::EventSetup& evSetup, - const reco::Track& muon) const override { - return depositFromObject(ev, evSetup, muon); - } - - reco::IsoDeposit deposit(const edm::Event& ev, - const edm::EventSetup& evSetup, - const reco::Candidate& muon) const override { - return depositFromObject(ev, evSetup, muon); - } - - private: - reco::IsoDeposit::Veto veto(const reco::IsoDeposit::Direction& dir) const; - - template - reco::IsoDeposit depositFromObject(const edm::Event& ev, const edm::EventSetup& evSetup, const T& cand) const; - - // Parameter set - edm::EDGetTokenT > theCandViewToken; // Track Collection Label - std::string theDepositLabel; // name for deposit - edm::Handle > theCandViewH; //cached handle - edm::Event::CacheIdentifier_t theCacheID; //event cacheID - double theDiff_r; // transverse distance to vertex - double theDiff_z; // z distance to vertex - double theDR_Max; // Maximum cone angle for deposits - double theDR_Veto; // Veto cone angle - }; - -} // namespace muonisolation - -#endif diff --git a/PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.icc b/PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.icc deleted file mode 100644 index 681e3f8a10118..0000000000000 --- a/PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.icc +++ /dev/null @@ -1,34 +0,0 @@ -template -IsoDeposit CandViewExtractor::depositFromObject(const Event& event, const EventSetup& eventSetup, const T& cand) const { - static const std::string metname = "MuonIsolation|CandViewExtractor"; - - reco::isodeposit::Direction candDir(cand.eta(), cand.phi()); - IsoDeposit deposit(candDir); - deposit.setVeto(veto(candDir)); - deposit.addCandEnergy(cand.pt()); - - Handle > candViewH; - if (theCacheID != event.cacheIdentifier()) { - event.getByToken(theCandViewToken, candViewH); - } else { - candViewH = theCandViewH; - } - - double eta = cand.eta(), phi = cand.phi(); - const reco::Particle::Point& vtx = cand.vertex(); - LogDebug(metname) << "cand eta=" << eta << " phi=" << phi << " vtx=" << vtx; - for (View::const_iterator it = candViewH->begin(), ed = candViewH->end(); it != ed; ++it) { - double dR = deltaR(it->eta(), it->phi(), eta, phi); - LogDebug(metname) << "pdgid=" << it->pdgId() << " vtx=" << it->vertex() << " dR=" << dR - << " dvz=" << it->vz() - cand.vz() << " drho=" << (it->vertex() - vtx).Rho(); - if ((dR < theDR_Max) && (dR > theDR_Veto) && (std::abs(it->vz() - cand.vz()) < theDiff_z) && - ((it->vertex() - vtx).Rho() < theDiff_r)) { - // ok - reco::isodeposit::Direction dirTrk(it->eta(), it->phi()); - deposit.addDeposit(dirTrk, it->pt()); - LogDebug(metname) << "pt=" << it->pt(); - } - } - - return deposit; -} diff --git a/PhysicsTools/IsolationAlgos/plugins/PFTauExtractor.cc b/PhysicsTools/IsolationAlgos/plugins/PFTauExtractor.cc index 7e5c38c43df95..57b31fc5b72aa 100644 --- a/PhysicsTools/IsolationAlgos/plugins/PFTauExtractor.cc +++ b/PhysicsTools/IsolationAlgos/plugins/PFTauExtractor.cc @@ -1,13 +1,50 @@ -#include "PhysicsTools/IsolationAlgos/plugins/PFTauExtractor.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" - +#include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/Math/interface/deltaR.h" +#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" #include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" +#include "DataFormats/TauReco/interface/PFTau.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" + +class PFTauExtractor : public reco::isodeposit::IsoDepositExtractor { +public: + explicit PFTauExtractor(const edm::ParameterSet&, edm::ConsumesCollector&& iC); + ~PFTauExtractor() override {} + + /// definition of pure virtual functions inherited from IsoDepositExtractor base-class + void fillVetos(const edm::Event&, const edm::EventSetup&, const reco::TrackCollection&) override {} + reco::IsoDeposit deposit(const edm::Event& evt, const edm::EventSetup& es, const reco::Track& track) const override { + return depositFromObject(evt, es, track); + } + reco::IsoDeposit deposit(const edm::Event& evt, + const edm::EventSetup& es, + const reco::Candidate& candidate) const override { + return depositFromObject(evt, es, candidate); + } -#include "DataFormats/Math/interface/deltaR.h" +private: + /// configuration parameters + edm::EDGetTokenT tauSourceToken_; + edm::EDGetTokenT > candidateSourceToken_; + double maxDxyTrack_; + double maxDzTrack_; + double dRmatchPFTau_; + double dRVetoCone_; + double dRIsoCone_; + double dRvetoPFTauSignalConeConstituents_; + + /// private member function for computing the IsoDeposits + /// in case of reco::Track as well as in case of reco::Canididate input + template + reco::IsoDeposit depositFromObject(const edm::Event&, const edm::EventSetup&, const T&) const; +}; PFTauExtractor::PFTauExtractor(const edm::ParameterSet& cfg, edm::ConsumesCollector&& iC) { tauSourceToken_ = iC.consumes(cfg.getParameter("tauSource")); diff --git a/PhysicsTools/IsolationAlgos/plugins/PFTauExtractor.h b/PhysicsTools/IsolationAlgos/plugins/PFTauExtractor.h deleted file mode 100644 index 6bac332e3dca7..0000000000000 --- a/PhysicsTools/IsolationAlgos/plugins/PFTauExtractor.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef PhysicsTools_IsolationAlgos_PFTauExtractor_H -#define PhysicsTools_IsolationAlgos_PFTauExtractor_H - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" - -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/TauReco/interface/PFTau.h" -#include "DataFormats/TauReco/interface/PFTauFwd.h" - -class PFTauExtractor : public reco::isodeposit::IsoDepositExtractor { -public: - explicit PFTauExtractor(const edm::ParameterSet&, edm::ConsumesCollector&& iC); - ~PFTauExtractor() override {} - - /// definition of pure virtual functions inherited from IsoDepositExtractor base-class - void fillVetos(const edm::Event&, const edm::EventSetup&, const reco::TrackCollection&) override {} - reco::IsoDeposit deposit(const edm::Event& evt, const edm::EventSetup& es, const reco::Track& track) const override { - return depositFromObject(evt, es, track); - } - reco::IsoDeposit deposit(const edm::Event& evt, - const edm::EventSetup& es, - const reco::Candidate& candidate) const override { - return depositFromObject(evt, es, candidate); - } - -private: - /// configuration parameters - edm::EDGetTokenT tauSourceToken_; - edm::EDGetTokenT > candidateSourceToken_; - double maxDxyTrack_; - double maxDzTrack_; - double dRmatchPFTau_; - double dRVetoCone_; - double dRIsoCone_; - double dRvetoPFTauSignalConeConstituents_; - - /// private member function for computing the IsoDeposits - /// in case of reco::Track as well as in case of reco::Canididate input - template - reco::IsoDeposit depositFromObject(const edm::Event&, const edm::EventSetup&, const T&) const; -}; - -#endif diff --git a/PhysicsTools/TagAndProbe/interface/ElectronMatchedCandidateProducer.h b/PhysicsTools/TagAndProbe/interface/ElectronMatchedCandidateProducer.h deleted file mode 100644 index a80246bbd5f2c..0000000000000 --- a/PhysicsTools/TagAndProbe/interface/ElectronMatchedCandidateProducer.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef PhysicsTools_TagAndProbe_ElectronMatchedCandidateProducer_h -#define PhysicsTools_TagAndProbe_ElectronMatchedCandidateProducer_h - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" - -// forward declarations - -class ElectronMatchedCandidateProducer : public edm::EDProducer { -public: - explicit ElectronMatchedCandidateProducer(const edm::ParameterSet&); - ~ElectronMatchedCandidateProducer() override; - -private: - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - // ----------member data --------------------------- - - edm::EDGetTokenT > electronCollectionToken_; - edm::EDGetTokenT > scCollectionToken_; - double delRMatchingCut_; -}; - -#endif diff --git a/PhysicsTools/TagAndProbe/plugins/ElectronMatchedCandidateProducer.cc b/PhysicsTools/TagAndProbe/plugins/ElectronMatchedCandidateProducer.cc index 96c066e995afb..51c9f20a12ac1 100644 --- a/PhysicsTools/TagAndProbe/plugins/ElectronMatchedCandidateProducer.cc +++ b/PhysicsTools/TagAndProbe/plugins/ElectronMatchedCandidateProducer.cc @@ -1,8 +1,27 @@ -#include "PhysicsTools/TagAndProbe/interface/ElectronMatchedCandidateProducer.h" +#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" +#include "DataFormats/Math/interface/deltaR.h" +#include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/Event.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include + +class ElectronMatchedCandidateProducer : public edm::EDProducer { +public: + explicit ElectronMatchedCandidateProducer(const edm::ParameterSet &); + +private: + void beginJob() override; + void produce(edm::Event &, const edm::EventSetup &) override; + void endJob() override; -#include "DataFormats/Math/interface/deltaR.h" // reco::deltaR + // ----------member data --------------------------- + + edm::EDGetTokenT> electronCollectionToken_; + edm::EDGetTokenT> scCollectionToken_; + double delRMatchingCut_; +}; ElectronMatchedCandidateProducer::ElectronMatchedCandidateProducer(const edm::ParameterSet ¶ms) { const edm::InputTag allelectrons("gsfElectrons"); @@ -16,15 +35,13 @@ ElectronMatchedCandidateProducer::ElectronMatchedCandidateProducer(const edm::Pa produces>(); } -ElectronMatchedCandidateProducer::~ElectronMatchedCandidateProducer() {} - // // member functions // // ------------ method called to produce the data ------------ -void ElectronMatchedCandidateProducer::produce(edm::Event &event, const edm::EventSetup &eventSetup) { +void ElectronMatchedCandidateProducer::produce(edm::Event &event, const edm::EventSetup &) { // Create the output collection auto outColRef = std::make_unique>(); auto outColPtr = std::make_unique>(); @@ -68,4 +85,5 @@ void ElectronMatchedCandidateProducer::beginJob() {} void ElectronMatchedCandidateProducer::endJob() {} //define this as a plug-in +#include "FWCore/Framework/interface/MakerMacros.h" DEFINE_FWK_MODULE(ElectronMatchedCandidateProducer);