![]() |
![]() |
00001 00002 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentGlobalTrackSelector_h 00003 #define Alignment_CommonAlignmentAlgorithm_AlignmentGlobalTrackSelector_h 00004 00005 //Framework 00006 #include "FWCore/Utilities/interface/InputTag.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 //STL 00009 #include <vector> 00010 00011 namespace edm {class Track;} 00012 namespace reco {class Event;} 00013 00014 class AlignmentGlobalTrackSelector 00015 { 00016 00017 public: 00018 00019 typedef std::vector<const reco::Track*> Tracks; 00020 00022 AlignmentGlobalTrackSelector(const edm::ParameterSet & cfg); 00023 00025 ~AlignmentGlobalTrackSelector(); 00026 00028 Tracks select(const Tracks& tracks, const edm::Event& iEvent); 00030 bool useThisFilter(); 00031 00032 private: 00033 00035 Tracks checkJetCount(const Tracks& cands,const edm::Event& iEvent)const; 00037 Tracks checkIsolation(const Tracks& cands,const edm::Event& iEvent)const; 00039 Tracks findMuons(const Tracks& tracks,const edm::Event& iEvent)const; 00040 00042 edm::ParameterSet theConf; 00043 00044 //settings from conigfile 00045 bool theGMFilterSwitch; 00046 bool theIsoFilterSwitch; 00047 bool theJetCountFilterSwitch; 00048 00049 //global Muon Filter 00050 edm::InputTag theMuonSource; 00051 double theMaxTrackDeltaR; 00052 int theMinGlobalMuonCount; 00053 00054 //isolation Cut 00055 edm::InputTag theJetIsoSource; 00056 double theMaxJetPt; 00057 double theMinJetDeltaR; 00058 int theMinIsolatedCount; 00059 00060 //jet count Filter 00061 edm::InputTag theJetCountSource; 00062 double theMinJetPt; 00063 int theMaxJetCount; 00064 00065 //helpers 00066 00068 void printTracks(const Tracks& col) const; 00069 00071 Tracks matchTracks(const Tracks& src, const Tracks& comp) const; 00072 }; 00073 00074 #endif 00075