00001 #ifndef BPhysicsOniaDQM_H 00002 #define BPhysicsOniaDQM_H 00003 00004 00014 #include "DataFormats/MuonReco/interface/Muon.h" 00015 #include "FWCore/Framework/interface/Frameworkfwd.h" 00016 #include "FWCore/Framework/interface/EDAnalyzer.h" 00017 #include "FWCore/Utilities/interface/InputTag.h" 00018 #include "FWCore/Framework/interface/LuminosityBlock.h" 00019 #include "DataFormats/Luminosity/interface/LumiSummary.h" 00020 00021 #include <string> 00022 #include <cmath> 00023 #include <map> 00024 00025 class DQMStore; 00026 class MonitorElement; 00027 00028 class BPhysicsOniaDQM : public edm::EDAnalyzer { 00029 public: 00030 00032 BPhysicsOniaDQM(const edm::ParameterSet&); 00033 00035 virtual ~BPhysicsOniaDQM(); 00036 00038 void beginJob(); 00039 00041 void analyze(const edm::Event&, const edm::EventSetup&); 00042 void beginLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup); 00043 void endLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup); 00044 void beginRun(const edm::Run& iRun, const edm::EventSetup& iSetup); 00045 void endRun(const edm::Run& iRun, const edm::EventSetup& iSetup); 00046 void endJob(void); 00047 00048 private: 00049 00050 float computeMass(const math::XYZVector &vec1,const math::XYZVector &vec2); 00051 bool isMuonInAccept(const reco::Muon &recoMu); 00052 bool selGlobalMuon(const reco::Muon &recoMu); 00053 bool selTrackerMuon(const reco::Muon &recoMu); 00054 00055 // ----------member data --------------------------- 00056 00057 DQMStore* theDbe; 00058 00059 edm::InputTag vertex; 00060 // Switch for verbosity 00061 std::string metname; 00062 00063 // Muon Label 00064 edm::InputTag theMuonCollectionLabel; 00065 00066 //The histos 00067 MonitorElement* diMuonMass_global; 00068 MonitorElement* diMuonMass_tracker; 00069 MonitorElement* diMuonMass_standalone; 00070 MonitorElement* global_background; 00071 MonitorElement* tracker_background; 00072 MonitorElement* standalone_background; 00073 00074 MonitorElement* glbSigCut; 00075 MonitorElement* glbSigNoCut; 00076 MonitorElement* glbBkgNoCut; 00077 MonitorElement* staSigCut; 00078 MonitorElement* staSigNoCut; 00079 MonitorElement* staBkgNoCut; 00080 MonitorElement* trkSigCut; 00081 MonitorElement* trkSigNoCut; 00082 MonitorElement* trkBkgNoCut; 00083 00084 MonitorElement* JPsiGlbYdLumi; 00085 MonitorElement* JPsiStaYdLumi; 00086 MonitorElement* JPsiTrkYdLumi; 00087 00088 //Yield of dimuon objects 00089 int jpsiGlbSigPerLS; 00090 int jpsiStaSigPerLS; 00091 int jpsiTrkSigPerLS; 00092 std::map<int,int> jpsiGlbSig; 00093 std::map<int,int> jpsiStaSig; 00094 std::map<int,int> jpsiTrkSig; 00095 00096 math::XYZPoint RefVtx; 00097 }; 00098 #endif 00099