![]() |
![]() |
00001 #ifndef PhysicsTools_PatUtils_MuonSelector_h 00002 #define PhysicsTools_PatUtils_MuonSelector_h 00003 00020 #include <string> 00021 00022 #include "DataFormats/MuonReco/interface/Muon.h" 00023 00024 #include "PhysicsTools/PatUtils/interface/ParticleCode.h" 00025 #include "DataFormats/MuonReco/interface/MuonSelectors.h" 00026 00027 namespace pat { 00028 00030 struct MuonSelection { 00031 std::string selectionType; 00032 00034 00035 double dPbyPmax; 00036 double chi2max; 00037 int nHitsMin; 00039 00041 00042 muon::SelectionType flag; 00043 double minCaloCompatibility; 00044 double minSegmentCompatibility; 00046 00047 }; 00048 00049 00050 class MuonSelector { 00051 00052 public: 00053 00054 MuonSelector( const MuonSelection& cfg ) : config_( cfg ) {} 00055 ~MuonSelector() {} 00056 00059 const pat::ParticleStatus 00060 filter( const unsigned int& index, 00061 const edm::View<reco::Muon>& muons ) const; 00062 00063 private: 00064 00065 MuonSelection config_; 00066 00068 const pat::ParticleStatus 00069 customSelection_( const unsigned int& index, 00070 const edm::View<reco::Muon>& muons ) const; 00071 const pat::ParticleStatus 00072 muIdSelection_( const unsigned int& index, 00073 const edm::View<reco::Muon>& muons ) const; 00074 00075 00076 }; // class 00077 } // namespace 00078 00079 #endif