00001 #ifndef Validation_RecoMuon_RecoMuonValidatorPF_H 00002 #define Validation_RecoMuon_RecoMuonValidatorPF_H 00003 00004 #include "FWCore/Framework/interface/Frameworkfwd.h" 00005 #include "FWCore/Framework/interface/EDAnalyzer.h" 00006 #include "FWCore/Framework/interface/ESHandle.h" 00007 #include "FWCore/Framework/interface/Event.h" 00008 00009 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00010 #include "FWCore/Utilities/interface/InputTag.h" 00011 00012 #include "CommonTools/RecoAlgos/interface/TrackingParticleSelector.h" 00013 #include "DataFormats/TrackReco/interface/Track.h" 00014 00015 #include "SimMuon/MCTruth/interface/MuonAssociatorByHits.h" 00016 00017 // for selection cut 00018 #include "CommonTools/Utils/interface/StringCutObjectSelector.h" 00019 00020 class DQMStore; 00021 class MonitorElement; 00022 class MuonServiceProxy; 00023 class TrackAssociatorBase; 00024 00025 class RecoMuonValidatorPF : public edm::EDAnalyzer 00026 { 00027 public: 00028 RecoMuonValidatorPF(const edm::ParameterSet& pset); 00029 ~RecoMuonValidatorPF(); 00030 00031 virtual void beginRun(const edm::Run&, const edm::EventSetup& eventSetup); 00032 virtual void endRun(); 00033 virtual void analyze(const edm::Event& event, const edm::EventSetup& eventSetup); 00034 virtual int countMuonHits(const reco::Track& track) const; 00035 virtual int countTrackerHits(const reco::Track& track) const; 00036 00037 protected: 00038 unsigned int verbose_; 00039 00040 edm::InputTag simLabel_; 00041 edm::InputTag muonLabel_; 00042 std::string muonSelection_; 00043 00044 edm::InputTag muAssocLabel_; 00045 const MuonAssociatorByHits * assoByHits; 00046 00047 std::string outputFileName_; 00048 std::string subDir_; 00049 00050 MuonServiceProxy * theMuonService; 00051 DQMStore * theDQM; 00052 00053 bool doAbsEta_; 00054 bool doAssoc_; 00055 00056 TrackingParticleSelector tpSelector_; 00057 00058 // Track to use 00059 MuonAssociatorByHits::MuonTrackType trackType_; 00060 00061 struct MuonME; 00062 MuonME * muonME_; 00063 00064 struct CommonME; 00065 CommonME * commonME_; 00066 00067 private: 00068 StringCutObjectSelector<reco::Muon> selector_; 00069 00070 }; 00071 00072 #endif 00073 /* vim:set ts=2 sts=2 sw=2 expandtab: */