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 private: 00033 Tracks checkJetCount(const Tracks& cands,const edm::Event& iEvent)const; 00035 Tracks checkIsolation(const Tracks& cands,const edm::Event& iEvent)const; 00037 Tracks findMuons(const Tracks& tracks,const edm::Event& iEvent)const; 00038 00040 edm::ParameterSet theConf; 00041 00042 //settings from conigfile 00043 bool theIsoFilterSwitch; 00044 bool theJetCountFilterSwitch; 00045 bool theGMFilterSwitch; 00046 //global Muon Filter 00047 edm::InputTag theMuonSource; 00048 int theMinGlobalMuonCount; 00049 //isolation Cut 00050 edm::InputTag theJetIsoSource; 00051 double theMaxJetPt; 00052 double theMinJetDeltaR; 00053 double theMaxTrackDeltaR; 00054 int theMinIsolatedCount; 00055 //jet count Filter 00056 edm::InputTag theJetCountSource; 00057 double theMinJetPt; 00058 int theMaxJetCount; 00059 00060 //helpers 00061 // double deltaR(const reco::Track* t1,const reco::Track* t2) const; 00062 // double deltaR(const reco::Track* t,const reco::Particle& p) const; 00064 void printTracks(const Tracks& col) const; 00066 Tracks matchTracks(const Tracks& src, const Tracks& comp) const; 00067 00068 }; 00069 00070 #endif 00071