Go to the documentation of this file.00001 #ifndef PhysicsTools_IsolationAlgos_PFTauExtractor_H
00002 #define PhysicsTools_IsolationAlgos_PFTauExtractor_H
00003
00004 #include "FWCore/Framework/interface/Event.h"
00005 #include "FWCore/Framework/interface/EventSetup.h"
00006 #include "FWCore/Utilities/interface/InputTag.h"
00007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00008
00009 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
00010
00011 #include "DataFormats/TrackReco/interface/Track.h"
00012 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00013 #include "DataFormats/Candidate/interface/Candidate.h"
00014 #include "DataFormats/Candidate/interface/CandidateFwd.h"
00015 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00016
00017 class PFTauExtractor : public reco::isodeposit::IsoDepositExtractor
00018 {
00019 public:
00020
00021 explicit PFTauExtractor(const edm::ParameterSet&);
00022 virtual ~PFTauExtractor(){}
00023
00025 virtual void fillVetos(const edm::Event&, const edm::EventSetup&, const reco::TrackCollection&) { }
00026 virtual reco::IsoDeposit deposit(const edm::Event& evt, const edm::EventSetup& es, const reco::Track& track) const {
00027 return depositFromObject(evt, es, track);
00028 }
00029 virtual reco::IsoDeposit deposit(const edm::Event& evt, const edm::EventSetup& es, const reco::Candidate& candidate) const {
00030 return depositFromObject(evt, es, candidate);
00031 }
00032
00033 private:
00034
00036 edm::InputTag tauSource_;
00037 edm::InputTag candidateSource_;
00038 double maxDxyTrack_;
00039 double maxDzTrack_;
00040 double dRmatchPFTau_;
00041 double dRVetoCone_;
00042 double dRIsoCone_;
00043 double dRvetoPFTauSignalConeConstituents_;
00044
00047 template<typename T>
00048 reco::IsoDeposit depositFromObject(const edm::Event&, const edm::EventSetup&, const T&) const;
00049
00050 };
00051
00052 #endif