00001 #ifndef EwkMuLumiMonitorDQM_H 00002 #define EwkMuLumiMonitorDQM_H 00003 00012 #include "FWCore/Framework/interface/Frameworkfwd.h" 00013 #include "FWCore/Framework/interface/MakerMacros.h" 00014 00015 #include "FWCore/Framework/interface/EDAnalyzer.h" 00016 #include "FWCore/Utilities/interface/InputTag.h" 00017 #include "DataFormats/Candidate/interface/Candidate.h" 00018 #include "DataFormats/Candidate/interface/CandidateFwd.h" 00019 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h" 00020 #include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" 00021 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h" 00022 #include "DataFormats/MuonReco/interface/Muon.h" 00023 #include "DataFormats/TrackReco/interface/Track.h" 00024 #include "DataFormats/CaloTowers/interface/CaloTower.h" 00025 00026 class DQMStore; 00027 class MonitorElement; 00028 class EwkMuLumiMonitorDQM : public edm::EDAnalyzer { 00029 public: 00030 EwkMuLumiMonitorDQM (const edm::ParameterSet &); 00031 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00032 virtual void beginJob(); 00033 virtual void endJob(); 00034 virtual void beginRun(const edm::Run&, const edm::EventSetup&); 00035 virtual void endRun(const edm::Run&, const edm::EventSetup&); 00036 00037 void init_histograms(); 00038 double muIso(const reco::Muon &); 00039 double tkIso(reco::Track, edm::Handle<reco::TrackCollection>, edm::Handle<CaloTowerCollection>); 00040 bool IsMuMatchedToHLTMu ( const reco::Muon & , std::vector<reco::Particle> ,double ,double ); 00041 00042 private: 00043 00044 edm::InputTag trigTag_; 00045 edm::InputTag trigEv_; 00046 edm::InputTag muonTag_; 00047 edm::InputTag trackTag_; 00048 edm::InputTag caloTowerTag_; 00049 edm::InputTag metTag_; 00050 bool metIncludesMuons_; 00051 00052 // const std::string hltPath_; 00053 // const std::string L3FilterName_; 00054 00055 double ptMuCut_; 00056 double etaMuCut_; 00057 00058 bool isRelativeIso_; 00059 bool isCombinedIso_; 00060 double isoCut03_; 00061 00062 double deltaRTrk_; 00063 double ptThreshold_; 00064 double deltaRVetoTrk_; 00065 double maxDPtRel_; 00066 double maxDeltaR_; 00067 double mtMin_; 00068 double mtMax_; 00069 double acopCut_; 00070 double dxyCut_; 00071 00072 00073 00074 00075 DQMStore* theDbe; 00076 00077 00078 MonitorElement* mass2HLT_; 00079 MonitorElement* highMass2HLT_; 00080 // MonitorElement* highest_mupt2HLT_; 00081 //MonitorElement* lowest_mupt2HLT_; 00082 00083 MonitorElement* mass1HLT_; 00084 MonitorElement* highMass1HLT_; 00085 // MonitorElement* highest_mupt1HLT_; 00086 //MonitorElement* lowest_mupt1HLT_; 00087 00088 MonitorElement* massNotIso_; 00089 MonitorElement* highMassNotIso_; 00090 //MonitorElement* highest_muptNotIso_; 00091 // MonitorElement* lowest_muptNotIso_; 00092 00093 MonitorElement* massGlbSta_; 00094 MonitorElement* highMassGlbSta_; 00095 // MonitorElement* highest_muptGlbSta_; 00096 //MonitorElement* lowest_muptGlbSta_; 00097 00098 MonitorElement* massGlbTrk_; 00099 MonitorElement* highMassGlbTrk_; 00100 // MonitorElement* highest_muptGlbTrk_; 00101 //MonitorElement* lowest_muptGlbTrk_; 00102 00103 MonitorElement* TMass_; 00104 00105 MonitorElement* massIsBothGlbTrkThanW_; 00106 MonitorElement* highMassIsBothGlbTrkThanW_; 00107 00108 00109 unsigned int nall; 00110 unsigned int nEvWithHighPtMu; 00111 unsigned int nInKinRange; 00112 unsigned int nsel; 00113 unsigned int niso; 00114 unsigned int nhlt; 00115 unsigned int n1hlt; 00116 unsigned int n2hlt; 00117 unsigned int nNotIso; 00118 unsigned int nGlbSta; 00119 unsigned int nGlbTrk; 00120 unsigned int nTMass; 00121 unsigned int nW; 00122 00123 bool isZGolden1HLT_; 00124 bool isZGolden2HLT_; 00125 bool isZGoldenNoIso_; 00126 bool isZGlbSta_; 00127 bool isZGlbTrk_; 00128 bool isW_; 00129 00130 bool isValidHltConfig_; 00131 HLTConfigProvider hltConfigProvider_; 00132 00133 00134 }; 00135 00136 #endif