![]() |
![]() |
00001 #ifndef MuonRecoAnalyzer_H 00002 #define MuonRecoAnalyzer_H 00003 00004 00015 #include <memory> 00016 #include <fstream> 00017 #include "FWCore/Framework/interface/Frameworkfwd.h" 00018 #include "DQMOffline/Muon/src/MuonAnalyzerBase.h" 00019 #include "FWCore/Framework/interface/Event.h" 00020 #include "FWCore/Framework/interface/MakerMacros.h" 00021 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00022 #include "FWCore/ServiceRegistry/interface/Service.h" 00023 #include "DQMServices/Core/interface/DQMStore.h" 00024 #include "DQMServices/Core/interface/MonitorElement.h" 00025 #include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h" 00026 00027 00028 class MuonRecoAnalyzer : public MuonAnalyzerBase { 00029 public: 00030 00032 MuonRecoAnalyzer(const edm::ParameterSet&, MuonServiceProxy *theService); 00033 00035 virtual ~MuonRecoAnalyzer(); 00036 00038 void beginJob(edm::EventSetup const& iSetup, DQMStore *dbe); 00039 00041 void analyze(const edm::Event&, const edm::EventSetup&, const reco::Muon& recoMu); 00042 00043 00044 private: 00045 // ----------member data --------------------------- 00046 00047 edm::ParameterSet parameters; 00048 // Switch for verbosity 00049 std::string metname; 00050 // STA Label 00051 edm::InputTag theSTACollectionLabel; 00052 00053 //histo binning parameters 00054 int etaBin; 00055 double etaMin; 00056 double etaMax; 00057 00058 int thetaBin; 00059 double thetaMin; 00060 double thetaMax; 00061 00062 int phiBin; 00063 double phiMin; 00064 double phiMax; 00065 00066 int chi2Bin; 00067 double chi2Min; 00068 double chi2Max; 00069 00070 int pBin; 00071 double pMin; 00072 double pMax; 00073 00074 int ptBin; 00075 double ptMin; 00076 double ptMax; 00077 00078 int pResBin; 00079 double pResMin; 00080 double pResMax; 00081 00082 int rhBin; 00083 double rhMin; 00084 double rhMax; 00085 00086 //the histos 00087 MonitorElement* muReco; 00088 // global muon 00089 std::vector<MonitorElement*> etaGlbTrack; 00090 std::vector<MonitorElement*> etaResolution; 00091 std::vector<MonitorElement*> thetaGlbTrack; 00092 std::vector<MonitorElement*> thetaResolution; 00093 std::vector<MonitorElement*> phiGlbTrack; 00094 std::vector<MonitorElement*> phiResolution; 00095 std::vector<MonitorElement*> chi2OvDFGlbTrack; 00096 std::vector<MonitorElement*> pGlbTrack; 00097 std::vector<MonitorElement*> ptGlbTrack; 00098 std::vector<MonitorElement*> qGlbTrack; 00099 std::vector<MonitorElement*> qOverpResolution; 00100 std::vector<MonitorElement*> qOverptResolution; 00101 std::vector<MonitorElement*> oneOverpResolution; 00102 std::vector<MonitorElement*> oneOverptResolution; 00103 std::vector<MonitorElement*> rhAnalysis; 00104 // tracker muon 00105 MonitorElement* etaTrack; 00106 MonitorElement* thetaTrack; 00107 MonitorElement* phiTrack; 00108 MonitorElement* chi2OvDFTrack; 00109 MonitorElement* pTrack; 00110 MonitorElement* ptTrack; 00111 MonitorElement* qTrack; 00112 // sta muon 00113 MonitorElement* etaStaTrack; 00114 MonitorElement* thetaStaTrack; 00115 MonitorElement* phiStaTrack; 00116 MonitorElement* chi2OvDFStaTrack; 00117 MonitorElement* pStaTrack; 00118 MonitorElement* ptStaTrack; 00119 MonitorElement* qStaTrack; 00120 // efficiency 00121 std::vector<MonitorElement*> etaEfficiency; 00122 std::vector<MonitorElement*> phiEfficiency; 00123 00124 }; 00125 #endif