00001 #ifndef TopDiLeptonDQM_H 00002 #define TopDiLeptonDQM_H 00003 00004 #include <string> 00005 #include <vector> 00006 #include <iostream> 00007 #include <fstream> 00008 00009 #include "FWCore/Framework/interface/EDAnalyzer.h" 00010 #include "FWCore/Framework/interface/Event.h" 00011 #include "FWCore/Framework/interface/Frameworkfwd.h" 00012 #include "FWCore/Utilities/interface/InputTag.h" 00013 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00014 #include "FWCore/Framework/interface/MakerMacros.h" 00015 #include "FWCore/ServiceRegistry/interface/Service.h" 00016 #include "FWCore/Utilities/interface/EDMException.h" 00017 00018 #include "DQMServices/Core/interface/DQMStore.h" 00019 #include "DQMServices/Core/interface/MonitorElement.h" 00020 00021 #include "DataFormats/Common/interface/Ref.h" 00022 #include "DataFormats/Common/interface/Handle.h" 00023 #include "DataFormats/Common/interface/TriggerResults.h" 00024 #include "DataFormats/MuonReco/interface/Muon.h" 00025 #include "DataFormats/MuonReco/interface/MuonFwd.h" 00026 #include "DataFormats/MuonReco/interface/MuonEnergy.h" 00027 #include "DataFormats/MuonReco/interface/MuonIsolation.h" 00028 #include "DataFormats/EgammaCandidates/interface/Electron.h" 00029 #include "DataFormats/EgammaCandidates/interface/ElectronFwd.h" 00030 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h" 00031 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" 00032 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h" 00033 #include "DataFormats/VertexReco/interface/Vertex.h" 00034 #include "DataFormats/VertexReco/interface/VertexFwd.h" 00035 #include "HLTrigger/HLTfilters/interface/HLTHighLevel.h" 00036 00037 class TH1F; 00038 class TH2F; 00039 class TopDiLeptonDQM : public edm::EDAnalyzer { 00040 00041 public: 00042 00043 explicit TopDiLeptonDQM(const edm::ParameterSet&); 00044 ~TopDiLeptonDQM(); 00045 00046 protected: 00047 00048 void beginRun(const edm::Run&, const edm::EventSetup&); 00049 void endRun( const edm::Run&, const edm::EventSetup&); 00050 00051 private: 00052 00053 void initialize(); 00054 virtual void beginJob(); 00055 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00056 virtual void endJob(); 00057 00058 DQMStore * dbe_; 00059 bool fileOutput_; 00060 00061 std::string moduleName_; 00062 std::string outputFile_; 00063 edm::InputTag triggerResults_; 00064 std::vector<std::string> hltPaths_; 00065 std::vector<std::string> hltPaths_sig_; 00066 std::vector<std::string> hltPaths_trig_; 00067 00068 std::ofstream outfile; 00069 00070 int N_sig[100]; 00071 int N_trig[100]; 00072 float Eff[100]; 00073 00074 int N_mumu; 00075 int N_muel; 00076 int N_elel; 00077 00078 edm::InputTag vertex_; 00079 double vertex_X_cut_; 00080 double vertex_Y_cut_; 00081 double vertex_Z_cut_; 00082 00083 edm::InputTag muons_; 00084 double muon_pT_cut_; 00085 double muon_eta_cut_; 00086 double muon_iso_cut_; 00087 00088 edm::InputTag elecs_; 00089 double elec_pT_cut_; 00090 double elec_eta_cut_; 00091 double elec_iso_cut_; 00092 double elec_emf_cut_; 00093 00094 double MassWindow_up_; 00095 double MassWindow_down_; 00096 00097 MonitorElement * Events_; 00098 MonitorElement * Trigs_; 00099 MonitorElement * TriggerEff_; 00100 MonitorElement * Ntracks_; 00101 00102 MonitorElement * Nmuons_; 00103 MonitorElement * Nmuons_iso_; 00104 MonitorElement * Nmuons_charge_; 00105 MonitorElement * VxVy_muons_; 00106 MonitorElement * Vz_muons_; 00107 MonitorElement * pT_muons_; 00108 MonitorElement * eta_muons_; 00109 MonitorElement * phi_muons_; 00110 00111 MonitorElement * Nelecs_; 00112 MonitorElement * Nelecs_iso_; 00113 MonitorElement * Nelecs_charge_; 00114 MonitorElement * HoverE_elecs_; 00115 MonitorElement * pT_elecs_; 00116 MonitorElement * eta_elecs_; 00117 MonitorElement * phi_elecs_; 00118 00119 MonitorElement * MuIso_emEt03_; 00120 MonitorElement * MuIso_hadEt03_; 00121 MonitorElement * MuIso_hoEt03_; 00122 MonitorElement * MuIso_nJets03_; 00123 MonitorElement * MuIso_nTracks03_; 00124 MonitorElement * MuIso_sumPt03_; 00125 MonitorElement * MuIso_CombRelIso03_; 00126 00127 MonitorElement * ElecIso_cal_; 00128 MonitorElement * ElecIso_trk_; 00129 MonitorElement * ElecIso_CombRelIso_; 00130 00131 MonitorElement * dimassRC_; 00132 MonitorElement * dimassWC_; 00133 MonitorElement * dimassRC_LOGX_; 00134 MonitorElement * dimassWC_LOGX_; 00135 MonitorElement * dimassRC_LOG10_; 00136 MonitorElement * dimassWC_LOG10_; 00137 00138 MonitorElement * D_eta_muons_; 00139 MonitorElement * D_phi_muons_; 00140 MonitorElement * D_eta_elecs_; 00141 MonitorElement * D_phi_elecs_; 00142 MonitorElement * D_eta_lepts_; 00143 MonitorElement * D_phi_lepts_; 00144 00145 }; 00146 00147 #endif