CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/CommonTools/CandAlgos/interface/GenJetParticleSelector.h

Go to the documentation of this file.
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 2009/03/03 13:50:54 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 "CommonTools/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