00001 #ifndef PhysicsTools_PatUtils_JetSelector_h 00002 #define PhysicsTools_PatUtils_JetSelector_h 00003 00021 #include <string> 00022 #include "DataFormats/JetReco/interface/Jet.h" 00023 #include "DataFormats/JetReco/interface/CaloJet.h" 00024 #include "DataFormats/JetReco/interface/PFJet.h" 00025 #include "PhysicsTools/PatUtils/interface/JetSelection.h" 00026 #include "PhysicsTools/PatUtils/interface/CaloJetSelector.h" 00027 #include "DataFormats/Common/interface/ValueMap.h" 00028 00029 #include "PhysicsTools/PatUtils/interface/ParticleCode.h" 00030 00031 00032 namespace pat { 00033 00034 typedef edm::ValueMap<double> JetValueMap; 00035 00036 template<typename JetType> 00037 class JetSelector { 00038 00039 00040 public: 00041 JetSelector( const JetSelection& config ); 00042 ~JetSelector() {} 00043 00049 const ParticleStatus 00050 filter( const unsigned int& index, 00051 const edm::View<JetType>& Jets, 00052 const JetValueMap* JetMap 00053 ) const; 00054 00055 00056 private: 00057 00058 JetSelection config_; 00059 00060 std::auto_ptr<CaloJetSelector> CaloJetSelector_; 00061 //std::auto_ptr<CaloJetSelector> PFSelector_;///Selects PFJets 00062 00063 }; // class 00064 00065 } // namespace 00066 00067 #endif