00001 // 00002 // $Id: PATPFParticleProducer.h,v 1.2.4.1 2008/11/25 15:39:40 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/ParameterSet/interface/InputTag.h" 00024 #include "DataFormats/Common/interface/View.h" 00025 00026 #include "PhysicsTools/Utilities/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 00033 #include <string> 00034 00035 00036 namespace pat { 00037 00038 class LeptonLRCalc; 00039 00040 class PATPFParticleProducer : public edm::EDProducer { 00041 00042 public: 00043 00044 explicit PATPFParticleProducer(const edm::ParameterSet & iConfig); 00045 ~PATPFParticleProducer(); 00046 00047 virtual void produce(edm::Event & iEvent, const edm::EventSetup & iSetup); 00048 00049 private: 00050 void 00051 fetchCandidateCollection(edm::Handle< edm::View<PFParticleType> >& c, 00052 const edm::InputTag& tag, 00053 const edm::Event& iSetup) const; 00054 00055 // configurables 00056 edm::InputTag pfCandidateSrc_; 00057 bool embedPFCandidate_; 00058 bool addGenMatch_; 00059 bool embedGenMatch_; 00060 std::vector<edm::InputTag> genMatchSrc_; 00061 // tools 00062 GreaterByPt<PFParticle> pTComparator_; 00063 00064 00065 00066 }; 00067 00068 00069 } 00070 00071 #endif