CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/DQM/Physics/src/BPhysicsOniaDQM.h

Go to the documentation of this file.
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