![]() |
![]() |
00001 // 00002 // $Id: PATPFParticleProducer.h,v 1.8 2012/05/26 10:42:53 gpetrucc Exp $ 00003 // 00004 00005 #ifndef PhysicsTools_PatAlgos_PATPFParticleProducer_h 00006 #define PhysicsTools_PatAlgos_PATPFParticleProducer_h 00007 00020 #include "FWCore/Framework/interface/EDProducer.h" 00021 #include "FWCore/Framework/interface/Event.h" 00022 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00023 #include "FWCore/Utilities/interface/InputTag.h" 00024 #include "DataFormats/Common/interface/View.h" 00025 00026 #include "CommonTools/Utils/interface/PtComparator.h" 00027 00028 #include "DataFormats/PatCandidates/interface/PFParticle.h" 00029 00030 #include "PhysicsTools/PatAlgos/interface/MultiIsolator.h" 00031 #include "PhysicsTools/PatAlgos/interface/EfficiencyLoader.h" 00032 #include "PhysicsTools/PatAlgos/interface/KinResolutionsLoader.h" 00033 00034 #include "DataFormats/PatCandidates/interface/UserData.h" 00035 #include "PhysicsTools/PatAlgos/interface/PATUserDataHelper.h" 00036 00037 #include <string> 00038 00039 00040 namespace pat { 00041 00042 class LeptonLRCalc; 00043 00044 class PATPFParticleProducer : public edm::EDProducer { 00045 00046 public: 00047 00048 explicit PATPFParticleProducer(const edm::ParameterSet & iConfig); 00049 ~PATPFParticleProducer(); 00050 00051 virtual void produce(edm::Event & iEvent, const edm::EventSetup & iSetup); 00052 00053 private: 00054 void 00055 fetchCandidateCollection(edm::Handle< edm::View<reco::PFCandidate> >& c, 00056 const edm::InputTag& tag, 00057 const edm::Event& iSetup) const; 00058 00059 // configurables 00060 edm::InputTag pfCandidateSrc_; 00061 bool embedPFCandidate_; 00062 bool addGenMatch_; 00063 bool embedGenMatch_; 00064 std::vector<edm::InputTag> genMatchSrc_; 00065 // tools 00066 GreaterByPt<PFParticle> pTComparator_; 00067 00068 bool addEfficiencies_; 00069 pat::helper::EfficiencyLoader efficiencyLoader_; 00070 00071 bool addResolutions_; 00072 pat::helper::KinResolutionsLoader resolutionLoader_; 00073 00074 bool useUserData_; 00075 pat::PATUserDataHelper<pat::PFParticle> userDataHelper_; 00076 00077 00078 }; 00079 00080 00081 } 00082 00083 #endif