00001 #ifndef GenJetParticleSelector_h 00002 #define GenJetParticleSelector_h 00003 /* \class GenJetParticleSelector 00004 * 00005 * \author Luca Lista, INFN 00006 * 00007 * \version $Id: GenJetParticleSelector.h,v 1.1 2008/02/07 14:37:04 llista Exp $ 00008 * 00009 */ 00010 #include "SimGeneral/HepPDTRecord/interface/PdtEntry.h" 00011 #include <set> 00012 00013 namespace edm { class ParameterSet; class EventSetup; class Event; } 00014 namespace reco { class Candidate; } 00015 00016 class GenJetParticleSelector { 00017 public: 00018 GenJetParticleSelector(const edm::ParameterSet&); 00019 bool operator()(const reco::Candidate&); 00020 void init(const edm::EventSetup&); 00021 private: 00022 typedef std::vector<PdtEntry> vpdt; 00023 bool stableOnly_; 00024 bool partons_; 00025 vpdt pdtList_; 00026 bool bInclude_; 00027 std::set<int> pIds_; 00028 }; 00029 00030 #include "PhysicsTools/UtilAlgos/interface/EventSetupInitTrait.h" 00031 00032 namespace reco { 00033 namespace modules { 00034 struct GenJetParticleSelectorEventSetupInit { 00035 static void init(GenJetParticleSelector & selector, 00036 const edm::Event & evt, 00037 const edm::EventSetup& es) { 00038 selector.init(es); 00039 } 00040 }; 00041 00042 template<> 00043 struct EventSetupInit<GenJetParticleSelectorEventSetupInit> { 00044 typedef GenJetParticleSelectorEventSetupInit type; 00045 }; 00046 } 00047 } 00048 00049 #endif