CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes
VertexMonitor Class Reference

#include <VertexMonitor.h>

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void initHisto (DQMStore::IBooker &ibooker)
 
 VertexMonitor (const edm::ParameterSet &, const edm::InputTag &, const edm::InputTag &, std::string pvLabel)
 
 VertexMonitor (const edm::ParameterSet &, const edm::InputTag &, const edm::InputTag &, std::string pvLabel, edm::ConsumesCollector &iC)
 
virtual ~VertexMonitor ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Public Attributes

MonitorElementChi2oNDFVsBXlumi
 
MonitorElementChi2oNDFVsGoodPVtx
 
MonitorElementChi2ProbVsBXlumi
 
MonitorElementChi2ProbVsGoodPVtx
 
edm::ParameterSet conf_
 
bool doAllPlots_
 
bool doPlotsVsBXlumi_
 
bool doPlotsVsGoodPVtx_
 
MonitorElementFractionOfGoodPVtx
 
MonitorElementFractionOfGoodPVtxVsBXlumi
 
MonitorElementFractionOfGoodPVtxVsGoodPVtx
 
MonitorElementFractionOfGoodPVtxVsPVtx
 
MonitorElementGoodPVtxChi2oNDFVsBXlumi
 
MonitorElementGoodPVtxChi2oNDFVsGoodPVtx
 
MonitorElementGoodPVtxChi2ProbVsBXlumi
 
MonitorElementGoodPVtxChi2ProbVsGoodPVtx
 
MonitorElementGoodPVtxNumberOfTracks
 
MonitorElementGoodPVtxNumberOfTracksVsBXlumi
 
MonitorElementGoodPVtxNumberOfTracksVsGoodPVtx
 
MonitorElementGoodPVtxNumberOfTracksVsGoodPVtxNdof
 
MonitorElementGoodPVtxSumPt
 
MonitorElementGoodPVtxSumPtVsBXlumi
 
MonitorElementGoodPVtxSumPtVsGoodPVtx
 
std::string histname
 
std::string label_
 
GetLumilumiDetails_
 
MonitorElementNumberOfBADndofPVtx
 
MonitorElementNumberOfBADndofPVtxVsBXlumi
 
MonitorElementNumberOfBADndofPVtxVsGoodPVtx
 
MonitorElementNumberOfFakePVtx
 
MonitorElementNumberOfFakePVtxVsBXlumi
 
MonitorElementNumberOfFakePVtxVsGoodPVtx
 
MonitorElementNumberOfGoodPVtx
 
MonitorElementNumberOfGoodPVtxVsBXlumi
 
MonitorElementNumberOfPVtx
 
MonitorElementNumberOfPVtxVsBXlumi
 
MonitorElementNumberOfPVtxVsGoodPVtx
 
edm::InputTag primaryVertexInputTag_
 
edm::EDGetTokenT
< reco::VertexCollection
pvToken_
 
edm::InputTag selectedPrimaryVertexInputTag_
 
edm::EDGetTokenT
< reco::VertexCollection
selpvToken_
 

Detailed Description

Monitoring source for general quantities related to vertex

Definition at line 31 of file VertexMonitor.h.

Member Typedef Documentation

Definition at line 33 of file VertexMonitor.h.

Definition at line 34 of file VertexMonitor.h.

Constructor & Destructor Documentation

VertexMonitor::VertexMonitor ( const edm::ParameterSet iConfig,
const edm::InputTag primaryVertexInputTag,
const edm::InputTag selectedPrimaryVertexInputTag,
std::string  pvLabel 
)

Definition at line 18 of file VertexMonitor.cc.

References doPlotsVsBXlumi_, edm::ParameterSet::getParameter(), and lumiDetails_.

22  : conf_(iConfig),
23  primaryVertexInputTag_(primaryVertexInputTag),
24  selectedPrimaryVertexInputTag_(selectedPrimaryVertexInputTag),
25  label_(pvLabel),
26  NumberOfPVtx(nullptr),
27  NumberOfPVtxVsBXlumi(nullptr),
28  NumberOfPVtxVsGoodPVtx(nullptr),
29  NumberOfGoodPVtx(nullptr),
30  NumberOfGoodPVtxVsBXlumi(nullptr),
31  FractionOfGoodPVtx(nullptr),
34  FractionOfGoodPVtxVsPVtx(nullptr),
35  NumberOfBADndofPVtx(nullptr),
38  GoodPVtxSumPt(nullptr),
39  GoodPVtxSumPtVsBXlumi(nullptr),
40  GoodPVtxSumPtVsGoodPVtx(nullptr),
41  GoodPVtxNumberOfTracks(nullptr),
46  GoodPVtxChi2oNDFVsBXlumi(nullptr),
48  GoodPVtxChi2ProbVsBXlumi(nullptr),
49  doAllPlots_(conf_.getParameter<bool>("doAllPlots")),
50  doPlotsVsBXlumi_(conf_.getParameter<bool>("doPlotsVsBXlumi")),
51  doPlotsVsGoodPVtx_(conf_.getParameter<bool>("doPlotsVsGoodPVtx"))
52 
53 {
54  //now do what ever initialization is needed
55  if (doPlotsVsBXlumi_)
56  lumiDetails_ = new GetLumi(iConfig.getParameter<edm::ParameterSet>("BXlumiSetup"));
57 }
bool doPlotsVsGoodPVtx_
Definition: VertexMonitor.h:99
MonitorElement * GoodPVtxNumberOfTracks
Definition: VertexMonitor.h:87
std::string label_
Definition: VertexMonitor.h:55
MonitorElement * GoodPVtxChi2oNDFVsBXlumi
Definition: VertexMonitor.h:93
edm::ParameterSet conf_
Definition: VertexMonitor.h:51
MonitorElement * GoodPVtxSumPtVsBXlumi
Definition: VertexMonitor.h:84
MonitorElement * GoodPVtxNumberOfTracksVsBXlumi
Definition: VertexMonitor.h:88
bool doPlotsVsBXlumi_
Definition: VertexMonitor.h:98
MonitorElement * NumberOfBADndofPVtxVsGoodPVtx
Definition: VertexMonitor.h:76
MonitorElement * GoodPVtxNumberOfTracksVsGoodPVtx
Definition: VertexMonitor.h:89
MonitorElement * GoodPVtxChi2oNDFVsGoodPVtx
Definition: VertexMonitor.h:92
MonitorElement * FractionOfGoodPVtxVsPVtx
Definition: VertexMonitor.h:70
edm::InputTag primaryVertexInputTag_
Definition: VertexMonitor.h:53
MonitorElement * FractionOfGoodPVtx
Definition: VertexMonitor.h:67
MonitorElement * FractionOfGoodPVtxVsBXlumi
Definition: VertexMonitor.h:68
MonitorElement * GoodPVtxSumPtVsGoodPVtx
Definition: VertexMonitor.h:85
MonitorElement * NumberOfPVtxVsBXlumi
Definition: VertexMonitor.h:63
MonitorElement * NumberOfPVtxVsGoodPVtx
Definition: VertexMonitor.h:64
MonitorElement * FractionOfGoodPVtxVsGoodPVtx
Definition: VertexMonitor.h:69
MonitorElement * NumberOfBADndofPVtx
Definition: VertexMonitor.h:74
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MonitorElement * GoodPVtxSumPt
Definition: VertexMonitor.h:83
MonitorElement * GoodPVtxChi2ProbVsGoodPVtx
Definition: VertexMonitor.h:94
edm::InputTag selectedPrimaryVertexInputTag_
Definition: VertexMonitor.h:54
MonitorElement * NumberOfGoodPVtxVsBXlumi
Definition: VertexMonitor.h:66
MonitorElement * GoodPVtxChi2ProbVsBXlumi
Definition: VertexMonitor.h:95
MonitorElement * NumberOfBADndofPVtxVsBXlumi
Definition: VertexMonitor.h:75
MonitorElement * NumberOfPVtx
Definition: VertexMonitor.h:62
MonitorElement * GoodPVtxNumberOfTracksVsGoodPVtxNdof
Definition: VertexMonitor.h:90
GetLumi * lumiDetails_
Definition: VertexMonitor.h:60
MonitorElement * NumberOfGoodPVtx
Definition: VertexMonitor.h:65
VertexMonitor::VertexMonitor ( const edm::ParameterSet iConfig,
const edm::InputTag primaryVertexInputTag,
const edm::InputTag selectedPrimaryVertexInputTag,
std::string  pvLabel,
edm::ConsumesCollector iC 
)

Definition at line 59 of file VertexMonitor.cc.

References edm::ConsumesCollector::consumes(), doPlotsVsBXlumi_, edm::ParameterSet::getParameter(), lumiDetails_, primaryVertexInputTag_, pvToken_, selectedPrimaryVertexInputTag_, and selpvToken_.

64  : VertexMonitor(iConfig, primaryVertexInputTag, selectedPrimaryVertexInputTag, pvLabel) {
65  if (doPlotsVsBXlumi_)
66  lumiDetails_ = new GetLumi(iConfig.getParameter<edm::ParameterSet>("BXlumiSetup"), iC);
67 
70 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: VertexMonitor.h:57
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
bool doPlotsVsBXlumi_
Definition: VertexMonitor.h:98
edm::InputTag primaryVertexInputTag_
Definition: VertexMonitor.h:53
edm::EDGetTokenT< reco::VertexCollection > selpvToken_
Definition: VertexMonitor.h:58
VertexMonitor(const edm::ParameterSet &, const edm::InputTag &, const edm::InputTag &, std::string pvLabel)
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::InputTag selectedPrimaryVertexInputTag_
Definition: VertexMonitor.h:54
GetLumi * lumiDetails_
Definition: VertexMonitor.h:60
VertexMonitor::~VertexMonitor ( )
virtual

Definition at line 72 of file VertexMonitor.cc.

72  {
73  // do anything here that needs to be done at desctruction time
74  // (e.g. close files, deallocate resources etc.)
75  // if (lumiDetails_) delete lumiDetails_;
76 }

Member Function Documentation

void VertexMonitor::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Definition at line 85 of file VertexMonitor.cc.

References reco::Vertex::chi2(), doPlotsVsBXlumi_, doPlotsVsGoodPVtx_, dqm::impl::MonitorElement::Fill(), FractionOfGoodPVtx, FractionOfGoodPVtxVsBXlumi, FractionOfGoodPVtxVsGoodPVtx, FractionOfGoodPVtxVsPVtx, edm::Event::getHandle(), GetLumi::getValue(), GoodPVtxChi2oNDFVsBXlumi, GoodPVtxChi2oNDFVsGoodPVtx, GoodPVtxChi2ProbVsBXlumi, GoodPVtxChi2ProbVsGoodPVtx, GoodPVtxNumberOfTracks, GoodPVtxNumberOfTracksVsBXlumi, GoodPVtxNumberOfTracksVsGoodPVtx, GoodPVtxSumPt, GoodPVtxSumPtVsBXlumi, GoodPVtxSumPtVsGoodPVtx, edm::HandleBase::isValid(), lumiDetails_, reco::Vertex::ndof(), reco::Vertex::normalizedChi2(), NumberOfBADndofPVtx, NumberOfBADndofPVtxVsBXlumi, NumberOfBADndofPVtxVsGoodPVtx, NumberOfGoodPVtx, NumberOfGoodPVtxVsBXlumi, NumberOfPVtx, NumberOfPVtxVsBXlumi, NumberOfPVtxVsGoodPVtx, DiDispStaMuonMonitor_cfi::pt, MetAnalyzer::pv(), pvToken_, selpvToken_, reco::Vertex::tracks_begin(), reco::Vertex::tracks_end(), and reco::Vertex::tracksSize().

85  {
86  double bxlumi = 0.;
87  if (doPlotsVsBXlumi_)
88  bxlumi = lumiDetails_->getValue(iEvent);
89  // std::cout << "bxlumi : " << bxlumi << std::endl;
90 
91  size_t totalNumPV = 0;
92  size_t totalNumBADndofPV = 0;
94  if (pvHandle.isValid()) {
95  totalNumPV = pvHandle->size();
96  // std::cout << "totalNumPV : " << totalNumPV << std::endl;
97  for (reco::VertexCollection::const_iterator pv = pvHandle->begin(); pv != pvHandle->end(); ++pv) {
98  //--- count pv w/ ndof < 4
99  if (pv->ndof() < 4.)
100  totalNumBADndofPV++;
101  }
102  } else
103  return;
104  NumberOfPVtx->Fill(totalNumPV);
105  NumberOfBADndofPVtx->Fill(totalNumBADndofPV);
106  if (doPlotsVsBXlumi_) {
107  NumberOfPVtxVsBXlumi->Fill(bxlumi, totalNumPV);
108  NumberOfBADndofPVtxVsBXlumi->Fill(bxlumi, totalNumBADndofPV);
109  }
110 
111  size_t totalNumGoodPV = 0;
113  if (selpvHandle.isValid())
114  totalNumGoodPV = selpvHandle->size();
115  else
116  return;
117  // std::cout << "totalNumGoodPV: " << totalNumGoodPV << std::endl;
118  if (doPlotsVsGoodPVtx_) {
119  NumberOfPVtxVsGoodPVtx->Fill(totalNumGoodPV, totalNumPV);
120  NumberOfBADndofPVtxVsGoodPVtx->Fill(totalNumGoodPV, totalNumBADndofPV);
121  }
122 
123  double fracGoodPV = double(totalNumGoodPV) / double(totalNumPV);
124  // std::cout << "fracGoodPV: " << fracGoodPV << std::endl;
125 
126  NumberOfGoodPVtx->Fill(totalNumGoodPV);
127  FractionOfGoodPVtx->Fill(fracGoodPV);
128  if (doPlotsVsBXlumi_) {
129  NumberOfGoodPVtxVsBXlumi->Fill(bxlumi, totalNumGoodPV);
130  FractionOfGoodPVtxVsBXlumi->Fill(bxlumi, fracGoodPV);
131  }
132  if (doPlotsVsGoodPVtx_) {
133  FractionOfGoodPVtxVsGoodPVtx->Fill(totalNumGoodPV, fracGoodPV);
134  FractionOfGoodPVtxVsPVtx->Fill(totalNumPV, fracGoodPV);
135  }
136 
137  if (!selpvHandle->empty()) {
138  double sumpt = 0;
139  size_t ntracks = 0;
140  double chi2ndf = 0.;
141  double chi2prob = 0.;
142 
143  if (!selpvHandle->at(0).isFake()) {
144  reco::Vertex pv = selpvHandle->at(0);
145 
146  ntracks = pv.tracksSize();
147  chi2ndf = pv.normalizedChi2();
148  chi2prob = TMath::Prob(pv.chi2(), (int)pv.ndof());
149 
150  for (reco::Vertex::trackRef_iterator itrk = pv.tracks_begin(); itrk != pv.tracks_end(); ++itrk) {
151  double pt = (**itrk).pt();
152  sumpt += pt * pt;
153  }
154  GoodPVtxSumPt->Fill(sumpt);
155  GoodPVtxNumberOfTracks->Fill(ntracks);
156 
157  if (doPlotsVsBXlumi_) {
158  GoodPVtxSumPtVsBXlumi->Fill(bxlumi, sumpt);
159  GoodPVtxNumberOfTracksVsBXlumi->Fill(bxlumi, ntracks);
160  GoodPVtxChi2oNDFVsBXlumi->Fill(bxlumi, chi2ndf);
161  GoodPVtxChi2ProbVsBXlumi->Fill(bxlumi, chi2prob);
162  }
163  if (doPlotsVsGoodPVtx_) {
164  GoodPVtxSumPtVsGoodPVtx->Fill(totalNumGoodPV, sumpt);
165  GoodPVtxNumberOfTracksVsGoodPVtx->Fill(totalNumGoodPV, ntracks);
166  GoodPVtxChi2oNDFVsGoodPVtx->Fill(totalNumGoodPV, chi2ndf);
167  GoodPVtxChi2ProbVsGoodPVtx->Fill(totalNumGoodPV, chi2prob);
168  }
169  }
170  }
171 }
bool doPlotsVsGoodPVtx_
Definition: VertexMonitor.h:99
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: VertexMonitor.h:57
MonitorElement * GoodPVtxNumberOfTracks
Definition: VertexMonitor.h:87
MonitorElement * GoodPVtxChi2oNDFVsBXlumi
Definition: VertexMonitor.h:93
MonitorElement * GoodPVtxSumPtVsBXlumi
Definition: VertexMonitor.h:84
MonitorElement * GoodPVtxNumberOfTracksVsBXlumi
Definition: VertexMonitor.h:88
bool doPlotsVsBXlumi_
Definition: VertexMonitor.h:98
MonitorElement * NumberOfBADndofPVtxVsGoodPVtx
Definition: VertexMonitor.h:76
MonitorElement * GoodPVtxNumberOfTracksVsGoodPVtx
Definition: VertexMonitor.h:89
MonitorElement * GoodPVtxChi2oNDFVsGoodPVtx
Definition: VertexMonitor.h:92
void Fill(long long x)
MonitorElement * FractionOfGoodPVtxVsPVtx
Definition: VertexMonitor.h:70
double getValue(const edm::Event &)
Definition: GetLumi.cc:48
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
Definition: Event.h:563
double chi2() const
chi-squares
Definition: Vertex.h:116
trackRef_iterator tracks_end() const
last iterator over tracks
Definition: Vertex.h:110
MonitorElement * FractionOfGoodPVtx
Definition: VertexMonitor.h:67
MonitorElement * FractionOfGoodPVtxVsBXlumi
Definition: VertexMonitor.h:68
MonitorElement * GoodPVtxSumPtVsGoodPVtx
Definition: VertexMonitor.h:85
MonitorElement * NumberOfPVtxVsBXlumi
Definition: VertexMonitor.h:63
MonitorElement * NumberOfPVtxVsGoodPVtx
Definition: VertexMonitor.h:64
trackRef_iterator tracks_begin() const
first iterator over tracks
Definition: Vertex.h:108
edm::EDGetTokenT< reco::VertexCollection > selpvToken_
Definition: VertexMonitor.h:58
bool isValid() const
Definition: HandleBase.h:70
size_t tracksSize() const
number of tracks
Definition: Vertex.h:112
MonitorElement * FractionOfGoodPVtxVsGoodPVtx
Definition: VertexMonitor.h:69
double ndof() const
Definition: Vertex.h:123
MonitorElement * NumberOfBADndofPVtx
Definition: VertexMonitor.h:74
MonitorElement * GoodPVtxSumPt
Definition: VertexMonitor.h:83
MonitorElement * GoodPVtxChi2ProbVsGoodPVtx
Definition: VertexMonitor.h:94
MonitorElement * NumberOfGoodPVtxVsBXlumi
Definition: VertexMonitor.h:66
MonitorElement * GoodPVtxChi2ProbVsBXlumi
Definition: VertexMonitor.h:95
double normalizedChi2() const
chi-squared divided by n.d.o.f.
Definition: Vertex.h:125
MonitorElement * NumberOfBADndofPVtxVsBXlumi
Definition: VertexMonitor.h:75
MonitorElement * NumberOfPVtx
Definition: VertexMonitor.h:62
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector&lt;TrackRef&gt;
Definition: Vertex.h:38
GetLumi * lumiDetails_
Definition: VertexMonitor.h:60
MonitorElement * NumberOfGoodPVtx
Definition: VertexMonitor.h:65
void VertexMonitor::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 383 of file VertexMonitor.cc.

References edm::ConfigurationDescriptions::addDefault(), submitPVResolutionJobs::desc, and edm::ParameterSetDescription::setUnknown().

383  {
384  //The following says we do not know what parameters are allowed so do no validation
385  // Please change this to state exactly what you do use, even if it is no parameters
387  desc.setUnknown();
388  descriptions.addDefault(desc);
389 }
void addDefault(ParameterSetDescription const &psetDescription)
void VertexMonitor::initHisto ( DQMStore::IBooker ibooker)
virtual

Definition at line 174 of file VertexMonitor.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), beam_dqm_sourceclient-live_cfg::Chi2NDFMax, beam_dqm_sourceclient-live_cfg::Chi2NDFMin, Chi2oNDFVsBXlumi, Chi2ProbVsBXlumi, conf_, doPlotsVsBXlumi_, doPlotsVsGoodPVtx_, FractionOfGoodPVtx, FractionOfGoodPVtxVsBXlumi, FractionOfGoodPVtxVsGoodPVtx, FractionOfGoodPVtxVsPVtx, edm::ParameterSet::getParameter(), dqm::legacy::MonitorElement::getTH1(), GoodPVtxChi2oNDFVsBXlumi, GoodPVtxChi2oNDFVsGoodPVtx, GoodPVtxChi2ProbVsBXlumi, GoodPVtxChi2ProbVsGoodPVtx, GoodPVtxNumberOfTracks, GoodPVtxNumberOfTracksVsBXlumi, GoodPVtxNumberOfTracksVsGoodPVtx, GoodPVtxSumPt, GoodPVtxSumPtVsBXlumi, GoodPVtxSumPtVsGoodPVtx, histname, label_, NumberOfBADndofPVtx, NumberOfBADndofPVtxVsBXlumi, NumberOfBADndofPVtxVsGoodPVtx, NumberOfGoodPVtx, NumberOfGoodPVtxVsBXlumi, NumberOfPVtx, NumberOfPVtxVsBXlumi, NumberOfPVtxVsGoodPVtx, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

174  {
175  // parameters from the configuration
176  std::string MEFolderName = conf_.getParameter<std::string>("PVFolderName");
177 
178  // get binning from the configuration
179  edm::ParameterSet ParametersGoodPVtx = conf_.getParameter<edm::ParameterSet>("GoodPVtx");
180  int GoodPVtxBin = ParametersGoodPVtx.getParameter<int>("GoodPVtxBin");
181  double GoodPVtxMin = ParametersGoodPVtx.getParameter<double>("GoodPVtxMin");
182  double GoodPVtxMax = ParametersGoodPVtx.getParameter<double>("GoodPVtxMax");
183 
184  edm::ParameterSet ParametersNTrkPVtx = conf_.getParameter<edm::ParameterSet>("NTrkPVtx");
185  int NTrkPVtxBin = ParametersNTrkPVtx.getParameter<int>("NTrkPVtxBin");
186  double NTrkPVtxMin = ParametersNTrkPVtx.getParameter<double>("NTrkPVtxMin");
187  double NTrkPVtxMax = ParametersNTrkPVtx.getParameter<double>("NTrkPVtxMax");
188 
189  edm::ParameterSet ParametersSumPtPVtx = conf_.getParameter<edm::ParameterSet>("SumPtPVtx");
190  int SumPtPVtxBin = ParametersSumPtPVtx.getParameter<int>("SumPtPVtxBin");
191  double SumPtPVtxMin = ParametersSumPtPVtx.getParameter<double>("SumPtPVtxMin");
192  double SumPtPVtxMax = ParametersSumPtPVtx.getParameter<double>("SumPtPVtxMax");
193 
194  // book histo
195  // ----------------------//
196  ibooker.setCurrentFolder(MEFolderName + "/" + label_);
197 
198  histname = "NumberOfPVtx_" + label_;
199  NumberOfPVtx = ibooker.book1D(histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax);
200  NumberOfPVtx->setAxisTitle("Number of PV", 1);
201  NumberOfPVtx->setAxisTitle("Number of Events", 2);
202 
203  histname = "NumberOfGoodPVtx_" + label_;
204  NumberOfGoodPVtx = ibooker.book1D(histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax);
205  NumberOfGoodPVtx->setAxisTitle("Number of Good PV", 1);
206  NumberOfGoodPVtx->setAxisTitle("Number of Events", 2);
207 
208  histname = "FractionOfGoodPVtx_" + label_;
209  FractionOfGoodPVtx = ibooker.book1D(histname, histname, 100, 0., 1.);
210  FractionOfGoodPVtx->setAxisTitle("fraction of Good PV", 1);
211  FractionOfGoodPVtx->setAxisTitle("Number of Events", 2);
212 
213  histname = "NumberOfBADndofPVtx_" + label_;
214  NumberOfBADndofPVtx = ibooker.book1D(histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax);
215  NumberOfBADndofPVtx->setAxisTitle("Number of BADndof #PV", 1);
216  NumberOfBADndofPVtx->setAxisTitle("Number of Events", 2);
217 
218  histname = "GoodPVtxSumPt_" + label_;
219  GoodPVtxSumPt = ibooker.book1D(histname, histname, SumPtPVtxBin, SumPtPVtxMin, SumPtPVtxMax);
220  GoodPVtxSumPt->setAxisTitle("primary vertex #Sum p_{T}^{2} [GeV^{2}/c^{2}]", 1);
221  GoodPVtxSumPt->setAxisTitle("Number of events", 2);
222 
223  histname = "GoodPVtxNumberOfTracks_" + label_;
224  GoodPVtxNumberOfTracks = ibooker.book1D(histname, histname, NTrkPVtxBin, NTrkPVtxMin, NTrkPVtxMax);
225  GoodPVtxNumberOfTracks->setAxisTitle("primary vertex number of tracks", 1);
226  GoodPVtxNumberOfTracks->setAxisTitle("Number of events", 2);
227 
228  if (doPlotsVsBXlumi_) {
229  // get binning from the configuration
230  edm::ParameterSet BXlumiParameters = conf_.getParameter<edm::ParameterSet>("BXlumiSetup");
231  int BXlumiBin = BXlumiParameters.getParameter<int>("BXlumiBin");
232  double BXlumiMin = BXlumiParameters.getParameter<double>("BXlumiMin");
233  double BXlumiMax = BXlumiParameters.getParameter<double>("BXlumiMax");
234 
235  ibooker.setCurrentFolder(MEFolderName + "/" + label_ + "/PUmonitoring/");
236 
237  histname = "NumberOfPVtxVsBXlumi_" + label_;
239  ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, GoodPVtxMin, GoodPVtxMax * 3, "");
240  NumberOfPVtxVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
241  NumberOfPVtxVsBXlumi->setAxisTitle("lumi BX [10^{30}Hzcm^{-2}]", 1);
242  NumberOfPVtxVsBXlumi->setAxisTitle("Mean number of PV", 2);
243 
244  histname = "NumberOfGoodPVtxVsBXlumi_" + label_;
246  ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, GoodPVtxMin, GoodPVtxMax * 3, "");
247  NumberOfGoodPVtxVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
248  NumberOfGoodPVtxVsBXlumi->setAxisTitle("lumi BX [10^{30}Hzcm^{-2}]", 1);
249  NumberOfGoodPVtxVsBXlumi->setAxisTitle("Mean number of PV", 2);
250 
251  histname = "FractionOfGoodPVtxVsBXlumi_" + label_;
252  FractionOfGoodPVtxVsBXlumi = ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, 0., 1.5, "");
253  FractionOfGoodPVtxVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
254  FractionOfGoodPVtxVsBXlumi->setAxisTitle("lumi BX [10^{30}Hzcm^{-2}]", 1);
255  FractionOfGoodPVtxVsBXlumi->setAxisTitle("Mean number of PV", 2);
256 
257  histname = "NumberOfBADndofPVtxVsBXlumi_" + label_;
259  ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, GoodPVtxMin, GoodPVtxMax * 3, "");
260  NumberOfBADndofPVtxVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
261  NumberOfBADndofPVtxVsBXlumi->setAxisTitle("BADndof #PV", 1);
262  NumberOfBADndofPVtxVsBXlumi->setAxisTitle("Number of Events", 2);
263 
264  histname = "GoodPVtxSumPtVsBXlumi_" + label_;
266  ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, SumPtPVtxMin, SumPtPVtxMax * 3, "");
267  GoodPVtxSumPtVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
268  GoodPVtxSumPtVsBXlumi->setAxisTitle("lumi BX [10^{30}Hzcm^{-2}]", 1);
269  GoodPVtxSumPtVsBXlumi->setAxisTitle("Mean pv #Sum p_{T}^{2} [GeV^{2}/c]^{2}", 2);
270 
271  histname = "GoodPVtxNumberOfTracksVsBXlumi_" + label_;
273  ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, NTrkPVtxMin, NTrkPVtxMax * 3, "");
274  GoodPVtxNumberOfTracksVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
275  GoodPVtxNumberOfTracksVsBXlumi->setAxisTitle("lumi BX [10^{30}Hzcm^{-2}]", 1);
276  GoodPVtxNumberOfTracksVsBXlumi->setAxisTitle("Mean pv number of tracks", 2);
277 
278  // get binning from the configuration
279  double Chi2NDFMin = conf_.getParameter<double>("Chi2NDFMin");
280  double Chi2NDFMax = conf_.getParameter<double>("Chi2NDFMax");
281 
282  double Chi2ProbMin = conf_.getParameter<double>("Chi2ProbMin");
283  double Chi2ProbMax = conf_.getParameter<double>("Chi2ProbMax");
284 
285  histname = "Chi2oNDFVsBXlumi_" + label_;
287  ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, Chi2NDFMin, Chi2NDFMax * 3, "");
288  Chi2oNDFVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
289  Chi2oNDFVsBXlumi->setAxisTitle("lumi BX [10^{30}Hzcm^{-2}]", 1);
290  Chi2oNDFVsBXlumi->setAxisTitle("Mean #chi^{2}/ndof", 2);
291 
292  histname = "Chi2ProbVsBXlumi_" + label_;
294  ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, Chi2ProbMin, Chi2ProbMax * 3, "");
295  Chi2ProbVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
296  Chi2ProbVsBXlumi->setAxisTitle("lumi BX [10^{30}Hzcm^{-2}]", 1);
297  Chi2ProbVsBXlumi->setAxisTitle("Mean #chi^{2}/prob", 2);
298 
299  histname = "GoodPVtxChi2oNDFVsBXlumi_" + label_;
301  ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, Chi2NDFMin, Chi2NDFMax, "");
302  GoodPVtxChi2oNDFVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
303  GoodPVtxChi2oNDFVsBXlumi->setAxisTitle("lumi BX [10^{30}Hzcm^{-2}]", 1);
304  GoodPVtxChi2oNDFVsBXlumi->setAxisTitle("Mean PV #chi^{2}/ndof", 2);
305 
306  histname = "GoodPVtxChi2ProbVsBXlumi_" + label_;
308  ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, Chi2ProbMin, Chi2ProbMax * 3, "");
309  GoodPVtxChi2ProbVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
310  GoodPVtxChi2ProbVsBXlumi->setAxisTitle("lumi BX [10^{30}Hzcm^{-2}]", 1);
311  GoodPVtxChi2ProbVsBXlumi->setAxisTitle("Mean PV #chi^{2}/prob", 2);
312  }
313 
314  if (doPlotsVsGoodPVtx_) {
315  ibooker.setCurrentFolder(MEFolderName + "/" + label_ + "/PUmonitoring/VsGoodPVtx");
316 
317  histname = "NumberOfPVtxVsGoodPVtx_" + label_;
319  histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax, GoodPVtxMin, GoodPVtxMax * 3, "");
320  NumberOfPVtxVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
321  NumberOfPVtxVsGoodPVtx->setAxisTitle("Number of Good PV", 1);
322  NumberOfPVtxVsGoodPVtx->setAxisTitle("Mean number of PV", 2);
323 
324  histname = "FractionOfGoodPVtxVsGoodPVtx_" + label_;
326  histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax, GoodPVtxMin, GoodPVtxMax * 3, "");
327  FractionOfGoodPVtxVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
328  FractionOfGoodPVtxVsGoodPVtx->setAxisTitle("Number of Good PV", 1);
329  FractionOfGoodPVtxVsGoodPVtx->setAxisTitle("Mean fraction of Good PV", 2);
330 
331  histname = "FractionOfGoodPVtxVsPVtx_" + label_;
333  histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax, GoodPVtxMin, GoodPVtxMax * 3, "");
334  FractionOfGoodPVtxVsPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
335  FractionOfGoodPVtxVsPVtx->setAxisTitle("Number of Good PV", 1);
336  FractionOfGoodPVtxVsPVtx->setAxisTitle("Mean number of Good PV", 2);
337 
338  histname = "NumberOfBADndofPVtxVsGoodPVtx_" + label_;
340  histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax, GoodPVtxMin, GoodPVtxMax * 3, "");
341  NumberOfBADndofPVtxVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
342  NumberOfBADndofPVtxVsGoodPVtx->setAxisTitle("Number of Good PV", 1);
343  NumberOfBADndofPVtxVsGoodPVtx->setAxisTitle("Mean Number of BAD PV", 2);
344 
345  histname = "GoodPVtxSumPtVsGoodPVtx_" + label_;
347  histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax, SumPtPVtxMin, SumPtPVtxMax * 3, "");
348  GoodPVtxSumPtVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
349  GoodPVtxSumPtVsGoodPVtx->setAxisTitle("Number of Good PV", 1);
350  GoodPVtxSumPtVsGoodPVtx->setAxisTitle("Mean pv #Sum p_{T}^{2} [GeV^{2}/c]^{2}", 2);
351 
352  histname = "GoodPVtxNumberOfTracksVsGoodPVtx_" + label_;
354  histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax, NTrkPVtxMin, NTrkPVtxMax * 3, "");
355  GoodPVtxNumberOfTracksVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
356  GoodPVtxNumberOfTracksVsGoodPVtx->setAxisTitle("Number of Good PV", 1);
357  GoodPVtxNumberOfTracksVsGoodPVtx->setAxisTitle("Mean pv number of tracks", 2);
358 
359  // get binning from the configuration
360  double Chi2NDFMin = conf_.getParameter<double>("Chi2NDFMin");
361  double Chi2NDFMax = conf_.getParameter<double>("Chi2NDFMax");
362 
363  double Chi2ProbMin = conf_.getParameter<double>("Chi2ProbMin");
364  double Chi2ProbMax = conf_.getParameter<double>("Chi2ProbMax");
365 
366  histname = "GoodPVtxChi2oNDFVsGoodPVtx_" + label_;
368  ibooker.bookProfile(histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax, Chi2NDFMin, Chi2NDFMax * 3, "");
369  GoodPVtxChi2oNDFVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
370  GoodPVtxChi2oNDFVsGoodPVtx->setAxisTitle("Number of Good PV", 1);
371  GoodPVtxChi2oNDFVsGoodPVtx->setAxisTitle("Mean PV #chi^{2}/ndof", 2);
372 
373  histname = "GoodPVtxChi2ProbVsGoodPVtx_" + label_;
375  histname, histname, GoodPVtxBin, GoodPVtxMin, GoodPVtxMax, Chi2ProbMin, Chi2ProbMax * 3, "");
376  GoodPVtxChi2ProbVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
377  GoodPVtxChi2ProbVsGoodPVtx->setAxisTitle("Number of Good PV", 1);
378  GoodPVtxChi2ProbVsGoodPVtx->setAxisTitle("Mean PV #chi^{2}/prob", 2);
379  }
380 }
bool doPlotsVsGoodPVtx_
Definition: VertexMonitor.h:99
MonitorElement * GoodPVtxNumberOfTracks
Definition: VertexMonitor.h:87
std::string label_
Definition: VertexMonitor.h:55
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * GoodPVtxChi2oNDFVsBXlumi
Definition: VertexMonitor.h:93
edm::ParameterSet conf_
Definition: VertexMonitor.h:51
std::string histname
MonitorElement * GoodPVtxSumPtVsBXlumi
Definition: VertexMonitor.h:84
MonitorElement * GoodPVtxNumberOfTracksVsBXlumi
Definition: VertexMonitor.h:88
bool doPlotsVsBXlumi_
Definition: VertexMonitor.h:98
MonitorElement * NumberOfBADndofPVtxVsGoodPVtx
Definition: VertexMonitor.h:76
MonitorElement * GoodPVtxNumberOfTracksVsGoodPVtx
Definition: VertexMonitor.h:89
MonitorElement * GoodPVtxChi2oNDFVsGoodPVtx
Definition: VertexMonitor.h:92
MonitorElement * FractionOfGoodPVtxVsPVtx
Definition: VertexMonitor.h:70
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
MonitorElement * Chi2oNDFVsBXlumi
Definition: VertexMonitor.h:79
MonitorElement * FractionOfGoodPVtx
Definition: VertexMonitor.h:67
MonitorElement * FractionOfGoodPVtxVsBXlumi
Definition: VertexMonitor.h:68
MonitorElement * GoodPVtxSumPtVsGoodPVtx
Definition: VertexMonitor.h:85
MonitorElement * NumberOfPVtxVsBXlumi
Definition: VertexMonitor.h:63
MonitorElement * NumberOfPVtxVsGoodPVtx
Definition: VertexMonitor.h:64
MonitorElement * FractionOfGoodPVtxVsGoodPVtx
Definition: VertexMonitor.h:69
MonitorElement * NumberOfBADndofPVtx
Definition: VertexMonitor.h:74
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MonitorElement * GoodPVtxSumPt
Definition: VertexMonitor.h:83
MonitorElement * Chi2ProbVsBXlumi
Definition: VertexMonitor.h:81
MonitorElement * GoodPVtxChi2ProbVsGoodPVtx
Definition: VertexMonitor.h:94
MonitorElement * NumberOfGoodPVtxVsBXlumi
Definition: VertexMonitor.h:66
MonitorElement * GoodPVtxChi2ProbVsBXlumi
Definition: VertexMonitor.h:95
MonitorElement * NumberOfBADndofPVtxVsBXlumi
Definition: VertexMonitor.h:75
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * NumberOfPVtx
Definition: VertexMonitor.h:62
virtual TH1 * getTH1() const
MonitorElement * NumberOfGoodPVtx
Definition: VertexMonitor.h:65
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

Member Data Documentation

MonitorElement* VertexMonitor::Chi2oNDFVsBXlumi

Definition at line 79 of file VertexMonitor.h.

Referenced by initHisto().

MonitorElement* VertexMonitor::Chi2oNDFVsGoodPVtx

Definition at line 78 of file VertexMonitor.h.

MonitorElement* VertexMonitor::Chi2ProbVsBXlumi

Definition at line 81 of file VertexMonitor.h.

Referenced by initHisto().

MonitorElement* VertexMonitor::Chi2ProbVsGoodPVtx

Definition at line 80 of file VertexMonitor.h.

edm::ParameterSet VertexMonitor::conf_

Definition at line 51 of file VertexMonitor.h.

Referenced by initHisto().

bool VertexMonitor::doAllPlots_

Definition at line 97 of file VertexMonitor.h.

bool VertexMonitor::doPlotsVsBXlumi_

Definition at line 98 of file VertexMonitor.h.

Referenced by analyze(), initHisto(), and VertexMonitor().

bool VertexMonitor::doPlotsVsGoodPVtx_

Definition at line 99 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::FractionOfGoodPVtx

Definition at line 67 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::FractionOfGoodPVtxVsBXlumi

Definition at line 68 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::FractionOfGoodPVtxVsGoodPVtx

Definition at line 69 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::FractionOfGoodPVtxVsPVtx

Definition at line 70 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::GoodPVtxChi2oNDFVsBXlumi

Definition at line 93 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::GoodPVtxChi2oNDFVsGoodPVtx

Definition at line 92 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::GoodPVtxChi2ProbVsBXlumi

Definition at line 95 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::GoodPVtxChi2ProbVsGoodPVtx

Definition at line 94 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::GoodPVtxNumberOfTracks

Definition at line 87 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::GoodPVtxNumberOfTracksVsBXlumi

Definition at line 88 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::GoodPVtxNumberOfTracksVsGoodPVtx

Definition at line 89 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::GoodPVtxNumberOfTracksVsGoodPVtxNdof

Definition at line 90 of file VertexMonitor.h.

MonitorElement* VertexMonitor::GoodPVtxSumPt

Definition at line 83 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::GoodPVtxSumPtVsBXlumi

Definition at line 84 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::GoodPVtxSumPtVsGoodPVtx

Definition at line 85 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

std::string VertexMonitor::histname

Definition at line 101 of file VertexMonitor.h.

Referenced by initHisto().

std::string VertexMonitor::label_
GetLumi* VertexMonitor::lumiDetails_

Definition at line 60 of file VertexMonitor.h.

Referenced by analyze(), and VertexMonitor().

MonitorElement* VertexMonitor::NumberOfBADndofPVtx

Definition at line 74 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::NumberOfBADndofPVtxVsBXlumi

Definition at line 75 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::NumberOfBADndofPVtxVsGoodPVtx

Definition at line 76 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::NumberOfFakePVtx

Definition at line 71 of file VertexMonitor.h.

MonitorElement* VertexMonitor::NumberOfFakePVtxVsBXlumi

Definition at line 72 of file VertexMonitor.h.

MonitorElement* VertexMonitor::NumberOfFakePVtxVsGoodPVtx

Definition at line 73 of file VertexMonitor.h.

MonitorElement* VertexMonitor::NumberOfGoodPVtx

Definition at line 65 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::NumberOfGoodPVtxVsBXlumi

Definition at line 66 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::NumberOfPVtx

Definition at line 62 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::NumberOfPVtxVsBXlumi

Definition at line 63 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

MonitorElement* VertexMonitor::NumberOfPVtxVsGoodPVtx

Definition at line 64 of file VertexMonitor.h.

Referenced by analyze(), and initHisto().

edm::InputTag VertexMonitor::primaryVertexInputTag_

Definition at line 53 of file VertexMonitor.h.

Referenced by VertexMonitor().

edm::EDGetTokenT<reco::VertexCollection> VertexMonitor::pvToken_

Definition at line 57 of file VertexMonitor.h.

Referenced by analyze(), and VertexMonitor().

edm::InputTag VertexMonitor::selectedPrimaryVertexInputTag_

Definition at line 54 of file VertexMonitor.h.

Referenced by VertexMonitor().

edm::EDGetTokenT<reco::VertexCollection> VertexMonitor::selpvToken_

Definition at line 58 of file VertexMonitor.h.

Referenced by analyze(), and VertexMonitor().