00001 // 00002 // $Id: PATCompositeCandidateProducer.h,v 1.3 2009/06/25 23:49:35 gpetrucc Exp $ 00003 // 00004 00005 #ifndef PhysicsTools_PatAlgos_PATCompositeCandidateProducer_h 00006 #define PhysicsTools_PatAlgos_PATCompositeCandidateProducer_h 00007 00020 #include "FWCore/Framework/interface/EDProducer.h" 00021 #include "FWCore/Framework/interface/Event.h" 00022 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00023 00024 #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" 00025 #include "DataFormats/HepMCCandidate/interface/GenParticle.h" 00026 #include "DataFormats/Common/interface/Association.h" 00027 #include "DataFormats/Common/interface/ValueMap.h" 00028 00029 #include "CommonTools/Utils/interface/EtComparator.h" 00030 00031 #include "DataFormats/PatCandidates/interface/CompositeCandidate.h" 00032 00033 #include "PhysicsTools/PatAlgos/interface/PATUserDataHelper.h" 00034 #include "PhysicsTools/PatAlgos/interface/MultiIsolator.h" 00035 #include "PhysicsTools/PatAlgos/interface/EfficiencyLoader.h" 00036 #include "PhysicsTools/PatAlgos/interface/KinResolutionsLoader.h" 00037 #include "PhysicsTools/PatAlgos/interface/VertexingHelper.h" 00038 00039 namespace pat { 00040 00041 class PATCompositeCandidateProducer : public edm::EDProducer { 00042 00043 public: 00044 00045 explicit PATCompositeCandidateProducer(const edm::ParameterSet & iConfig); 00046 ~PATCompositeCandidateProducer(); 00047 00048 virtual void produce(edm::Event & iEvent, const edm::EventSetup & iSetup); 00049 00050 private: 00051 00052 // configurables 00053 edm::InputTag src_; // list of reco::CompositeCandidates 00054 00055 bool useUserData_; 00056 pat::PATUserDataHelper<pat::CompositeCandidate> userDataHelper_; 00057 00058 bool addEfficiencies_; 00059 pat::helper::EfficiencyLoader efficiencyLoader_; 00060 00061 bool addResolutions_; 00062 pat::helper::KinResolutionsLoader resolutionLoader_; 00063 }; 00064 00065 00066 } 00067 00068 #endif