00001 #ifndef PrimaryVertexMonitor_H
00002 #define PrimaryVertexMonitor_H
00003
00004 #include "FWCore/Framework/interface/Frameworkfwd.h"
00005 #include "FWCore/Framework/interface/EDAnalyzer.h"
00006 #include "FWCore/Framework/interface/Event.h"
00007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00008 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00009 #include "FWCore/ParameterSet/interface/InputTag.h"
00010
00011 #include "DQMServices/Core/interface/DQMStore.h"
00012 #include "DQMServices/Core/interface/MonitorElement.h"
00013
00014 #include "DataFormats/VertexReco/interface/Vertex.h"
00015 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00016
00017
00023 class PrimaryVertexMonitor : public edm::EDAnalyzer {
00024 public:
00025 explicit PrimaryVertexMonitor(const edm::ParameterSet& pSet);
00026
00027 ~PrimaryVertexMonitor();
00028
00029 virtual void analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup);
00030
00031 virtual void endJob();
00032
00033 private:
00034
00035 void vertexPlots(const reco::Vertex & v, const reco::BeamSpot& beamSpot, int i);
00036
00037 edm::InputTag moduleLabel, beamSpotLabel;
00038
00039 DQMStore * dqmStore_;
00040 std::string dqmLabel;
00041
00042
00043 MonitorElement *nbvtx, *nbtksinvtx[2], *trksWeight[2];
00044 MonitorElement *tt[2];
00045 MonitorElement *xrec[2] , *yrec[2], *zrec[2], *xDiff[2] , *yDiff[2], *xerr[2] , *yerr[2], *zerr[2] ;
00046 MonitorElement *xerrVsTrks[2] , *yerrVsTrks[2], *zerrVsTrks[2] ;
00047 MonitorElement *vtxchi2[2] , *vtxndf[2], *vtxprob[2] , *nans[2];
00048 MonitorElement *type[2];
00049 MonitorElement *bsX, *bsY, *bsZ, *bsSigmaZ, *bsDxdz, *bsDydz, *bsBeamWidth, *bsType;
00050 };
00051
00052
00053 #endif