CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10/src/DQM/TrackingMonitor/interface/VertexMonitor.h

Go to the documentation of this file.
00001 #ifndef VertexMonitor_H
00002 #define VertexMonitor_H
00003 // -*- C++ -*-
00004 //
00005 // 
00010 // system include files
00011 #include <memory> 
00012 
00013 // user include files
00014 #include "FWCore/Framework/interface/Frameworkfwd.h"
00015 #include "FWCore/Framework/interface/EDAnalyzer.h"
00016 
00017 #include "FWCore/Framework/interface/Event.h"
00018 #include "FWCore/Framework/interface/MakerMacros.h"
00019 
00020 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00021 
00022 #include "DQMServices/Core/interface/MonitorElement.h"
00023 
00024 #include "DataFormats/VertexReco/interface/Vertex.h"
00025 
00026 class GetLumi;
00027 
00028 class DQMStore;
00029 
00030 class VertexMonitor
00031 {
00032    public:
00033   VertexMonitor(const edm::ParameterSet&,edm::InputTag,edm::InputTag, std::string pvLabel);
00034        virtual ~VertexMonitor();
00035        static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
00036 
00037        virtual void beginJob(DQMStore * dqmStore_);
00038        virtual void analyze(const edm::Event&, const edm::EventSetup&);
00039        
00040        virtual void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&);
00041        virtual void endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&);
00042        
00043        // ----------member data ---------------------------
00044        
00045        edm::ParameterSet conf_;
00046        
00047        edm::InputTag     primaryVertexInputTag_;
00048        edm::InputTag     selectedPrimaryVertexInputTag_;
00049        std::string       label_;
00050 
00051        GetLumi* lumiDetails_;
00052 
00053        MonitorElement* NumberOfPVtx;
00054        MonitorElement* NumberOfPVtxVsBXlumi;
00055        MonitorElement* NumberOfPVtxVsGoodPVtx;
00056        MonitorElement* NumberOfGoodPVtx;
00057        MonitorElement* NumberOfGoodPVtxVsBXlumi;
00058        MonitorElement* FractionOfGoodPVtx;
00059        MonitorElement* FractionOfGoodPVtxVsBXlumi;
00060        MonitorElement* FractionOfGoodPVtxVsGoodPVtx;
00061        MonitorElement* FractionOfGoodPVtxVsPVtx;
00062        MonitorElement* NumberOfFakePVtx;
00063        MonitorElement* NumberOfFakePVtxVsBXlumi;
00064        MonitorElement* NumberOfFakePVtxVsGoodPVtx;
00065        MonitorElement* NumberOfBADndofPVtx;
00066        MonitorElement* NumberOfBADndofPVtxVsBXlumi;
00067        MonitorElement* NumberOfBADndofPVtxVsGoodPVtx;
00068 
00069        MonitorElement* Chi2oNDFVsGoodPVtx;
00070        MonitorElement* Chi2oNDFVsBXlumi;
00071        MonitorElement* Chi2ProbVsGoodPVtx;
00072        MonitorElement* Chi2ProbVsBXlumi;
00073 
00074        MonitorElement* GoodPVtxSumPt;
00075        MonitorElement* GoodPVtxSumPtVsBXlumi;
00076        MonitorElement* GoodPVtxSumPtVsGoodPVtx;
00077         
00078        MonitorElement* GoodPVtxNumberOfTracks;
00079        MonitorElement* GoodPVtxNumberOfTracksVsBXlumi;
00080        MonitorElement* GoodPVtxNumberOfTracksVsGoodPVtx;
00081        MonitorElement* GoodPVtxNumberOfTracksVsGoodPVtxNdof;    
00082 
00083        MonitorElement* GoodPVtxChi2oNDFVsGoodPVtx;
00084        MonitorElement* GoodPVtxChi2oNDFVsBXlumi;
00085        MonitorElement* GoodPVtxChi2ProbVsGoodPVtx;
00086        MonitorElement* GoodPVtxChi2ProbVsBXlumi;
00087 
00088        bool doAllPlots_; 
00089        bool doPlotsVsBXlumi_;
00090        bool doPlotsVsGoodPVtx_;
00091        
00092        std::string histname;  //for naming the histograms according to algorithm used
00093 
00094 };
00095 #endif