CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PrimaryVertexMonitor.cc
Go to the documentation of this file.
5 
6 
8 
10 
11 #include "TMath.h"
12 
13 using namespace reco;
14 using namespace edm;
15 
17  : conf_ ( pSet )
18  , dqmStore_ ( edm::Service<DQMStore>().operator->() )
19  , TopFolderName_ ( pSet.getParameter<std::string>("TopFolderName") )
20  , AlignmentLabel_( pSet.getParameter<std::string>("AlignmentLabel"))
21  , nbvtx(NULL)
22  , bsX(NULL)
23  , bsY(NULL)
24  , bsZ(NULL)
25  , bsSigmaZ(NULL)
26  , bsDxdz(NULL)
27  , bsDydz(NULL)
28  , bsBeamWidthX(NULL)
29  , bsBeamWidthY(NULL)
30  , bsType(NULL)
31  , sumpt(NULL)
32  , ntracks(NULL)
33  , weight(NULL)
34  , chi2ndf(NULL)
35  , chi2prob(NULL)
36  , dxy(NULL)
37  , dz(NULL)
38  , dxyErr(NULL)
39  , dzErr(NULL)
40  , dxyVsPhi_pt1(NULL)
41  , dzVsPhi_pt1(NULL)
42  , dxyVsEta_pt1(NULL)
43  , dzVsEta_pt1(NULL)
44  , dxyVsPhi_pt10(NULL)
45  , dzVsPhi_pt10(NULL)
46  , dxyVsEta_pt10(NULL)
47  , dzVsEta_pt10(NULL)
48 {
49  // dqmStore_ = edm::Service<DQMStore>().operator->();
50 
51 
52  vertexInputTag_ = pSet.getParameter<InputTag>("vertexLabel");
53  beamSpotInputTag_ = pSet.getParameter<InputTag>("beamSpotLabel");
54  vertexToken_ = consumes<reco::VertexCollection>(vertexInputTag_);
55  beamspotToken_ = consumes<reco::BeamSpot> (beamSpotInputTag_);
56 
57 }
58 
59 // -- BeginRun
60 //---------------------------------------------------------------------------------//
61 void
63 {
64 
65  std::string dqmLabel = "";
66 
67  //
68  // Book all histograms.
69  //
70 
71  // get the store
72  dqmLabel = TopFolderName_+"/"+vertexInputTag_.label();
73  dqmStore_->setCurrentFolder(dqmLabel);
74 
75 // xPos = dqmStore_->book1D ("xPos","x Coordinate" ,100, -0.1, 0.1);
76 
77  nbvtx = dqmStore_->book1D("vtxNbr","Reconstructed Vertices in Event",50,-0.5,49.5);
78 
79  nbtksinvtx[0] = dqmStore_->book1D("otherVtxTrksNbr","Reconstructed Tracks in Vertex (other Vtx)",40,-0.5,99.5);
80  trksWeight[0] = dqmStore_->book1D("otherVtxTrksWeight","Total weight of Tracks in Vertex (other Vtx)",40,0,100.);
81  vtxchi2[0] = dqmStore_->book1D("otherVtxChi2","#chi^{2} (other Vtx)",100,0.,200.);
82  vtxndf[0] = dqmStore_->book1D("otherVtxNdf","ndof (other Vtx)",100,0.,200.);
83  vtxprob[0] = dqmStore_->book1D("otherVtxProb","#chi^{2} probability (other Vtx)",100,0.,1.);
84  nans[0] = dqmStore_->book1D("otherVtxNans","Illegal values for x,y,z,xx,xy,xz,yy,yz,zz (other Vtx)",9,0.5,9.5);
85 
86  nbtksinvtx[1] = dqmStore_->book1D("tagVtxTrksNbr","Reconstructed Tracks in Vertex (tagged Vtx)",100,-0.5,99.5);
87  trksWeight[1] = dqmStore_->book1D("tagVtxTrksWeight","Total weight of Tracks in Vertex (tagged Vtx)",100,0,100.);
88  vtxchi2[1] = dqmStore_->book1D("tagVtxChi2","#chi^{2} (tagged Vtx)",100,0.,200.);
89  vtxndf[1] = dqmStore_->book1D("tagVtxNdf","ndof (tagged Vtx)",100,0.,200.);
90  vtxprob[1] = dqmStore_->book1D("tagVtxProb","#chi^{2} probability (tagged Vtx)",100,0.,1.);
91  nans[1] = dqmStore_->book1D("tagVtxNans","Illegal values for x,y,z,xx,xy,xz,yy,yz,zz (tagged Vtx)",9,0.5,9.5);
92 
93  xrec[0] = dqmStore_->book1D("otherPosX","Position x Coordinate (other Vtx)",100,-0.1,0.1);
94  yrec[0] = dqmStore_->book1D("otherPosY","Position y Coordinate (other Vtx)",100,-0.1,0.1);
95  zrec[0] = dqmStore_->book1D("otherPosZ","Position z Coordinate (other Vtx)",100,-20.,20.);
96  xDiff[0] = dqmStore_->book1D("otherDiffX","X distance from BeamSpot (other Vtx)",100,-500,500);
97  yDiff[0] = dqmStore_->book1D("otherDiffY","Y distance from BeamSpot (other Vtx)",100,-500,500);
98  xerr[0] = dqmStore_->book1D("otherErrX","Uncertainty x Coordinate (other Vtx)",100,-0.1,0.1);
99  yerr[0] = dqmStore_->book1D("otherErrY","Uncertainty y Coordinate (other Vtx)",100,-0.1,0.1);
100  zerr[0] = dqmStore_->book1D("otherErrZ","Uncertainty z Coordinate (other Vtx)",100,-20.,20.);
101  xerrVsTrks[0] = dqmStore_->book2D("otherErrVsWeightX","Uncertainty x Coordinate vs. track weight (other Vtx)",100,0,100.,100,-0.1,0.1);
102  yerrVsTrks[0] = dqmStore_->book2D("otherErrVsWeightY","Uncertainty y Coordinate vs. track weight (other Vtx)",100,0,100.,100,-0.1,0.1);
103  zerrVsTrks[0] = dqmStore_->book2D("otherErrVsWeightZ","Uncertainty z Coordinate vs. track weight (other Vtx)",100,0,100.,100,-0.1,0.1);
104 
105 
106  xrec[1] = dqmStore_->book1D("tagPosX","Position x Coordinate (tagged Vtx)",100,-0.1,0.1);
107  yrec[1] = dqmStore_->book1D("tagPosY","Position y Coordinate (tagged Vtx)",100,-0.1,0.1);
108  zrec[1] = dqmStore_->book1D("tagPosZ","Position z Coordinate (tagged Vtx)",100,-20.,20.);
109  xDiff[1] = dqmStore_->book1D("tagDiffX","X distance from BeamSpot (tagged Vtx)",100,-500, 500);
110  yDiff[1] = dqmStore_->book1D("tagDiffY","Y distance from BeamSpot (tagged Vtx)",100,-500, 500);
111  xerr[1] = dqmStore_->book1D("tagErrX","Uncertainty x Coordinate (tagged Vtx)",100,0.,100);
112  yerr[1] = dqmStore_->book1D("tagErrY","Uncertainty y Coordinate (tagged Vtx)",100,0.,100);
113  zerr[1] = dqmStore_->book1D("tagErrZ","Uncertainty z Coordinate (tagged Vtx)",100,0.,100);
114  xerrVsTrks[1] = dqmStore_->book2D("tagErrVsWeightX","Uncertainty x Coordinate vs. track weight (tagged Vtx)",100,0,100.,100,0.,100);
115  yerrVsTrks[1] = dqmStore_->book2D("tagErrVsWeightY","Uncertainty y Coordinate vs. track weight (tagged Vtx)",100,0,100.,100,0.,100);
116  zerrVsTrks[1] = dqmStore_->book2D("tagErrVsWeightZ","Uncertainty z Coordinate vs. track weight (tagged Vtx)",100,0,100.,100,0.,100);
117 
118  type[0] = dqmStore_->book1D("otherType","Vertex type (other Vtx)",3,-0.5,2.5);
119  type[1] = dqmStore_->book1D("tagType","Vertex type (tagged Vtx)",3,-0.5,2.5);
120  for (int i=0;i<2;++i){
121  type[i]->getTH1F()->GetXaxis()->SetBinLabel(1,"Valid, real");
122  type[i]->getTH1F()->GetXaxis()->SetBinLabel(2,"Valid, fake");
123  type[i]->getTH1F()->GetXaxis()->SetBinLabel(3,"Invalid");
124  }
125 
126 
127  // get the store
128  dqmLabel = TopFolderName_+"/"+beamSpotInputTag_.label();
129  dqmStore_->setCurrentFolder(dqmLabel);
130 
131  bsX = dqmStore_->book1D("bsX", "BeamSpot x0", 100,-0.1,0.1);
132  bsY = dqmStore_->book1D("bsY", "BeamSpot y0", 100,-0.1,0.1);
133  bsZ = dqmStore_->book1D("bsZ", "BeamSpot z0", 100,-2.,2.);
134  bsSigmaZ = dqmStore_->book1D("bsSigmaZ", "BeamSpot sigmaZ", 100, 0., 10. );
135  bsDxdz = dqmStore_->book1D("bsDxdz", "BeamSpot dxdz", 100, -0.0003, 0.0003);
136  bsDydz = dqmStore_->book1D("bsDydz", "BeamSpot dydz", 100, -0.0003, 0.0003);
137  bsBeamWidthX = dqmStore_->book1D("bsBeamWidthX", "BeamSpot BeamWidthX", 100, 0., 100.);
138  bsBeamWidthY = dqmStore_->book1D("bsBeamWidthY", "BeamSpot BeamWidthY", 100, 0., 100.);
139  bsType = dqmStore_->book1D("bsType", "BeamSpot type", 4, -1.5, 2.5);
140  bsType->getTH1F()->GetXaxis()->SetBinLabel(1,"Unknown");
141  bsType->getTH1F()->GetXaxis()->SetBinLabel(2,"Fake");
142  bsType->getTH1F()->GetXaxis()->SetBinLabel(3,"LHC");
143  bsType->getTH1F()->GetXaxis()->SetBinLabel(4,"Tracker");
144 
145 
146  // get the store
147  dqmLabel = TopFolderName_+"/"+AlignmentLabel_;
148  dqmStore_->setCurrentFolder(dqmLabel);
149 
150  int TKNoBin = conf_.getParameter<int>( "TkSizeBin");
151  double TKNoMin = conf_.getParameter<double>("TkSizeMin");
152  double TKNoMax = conf_.getParameter<double>("TkSizeMax");
153 
154  int DxyBin = conf_.getParameter<int>( "DxyBin");
155  double DxyMin = conf_.getParameter<double>("DxyMin");
156  double DxyMax = conf_.getParameter<double>("DxyMax");
157 
158  int DzBin = conf_.getParameter<int>( "DzBin");
159  double DzMin = conf_.getParameter<double>("DzMin");
160  double DzMax = conf_.getParameter<double>("DzMax");
161 
162  int PhiBin = conf_.getParameter<int>( "PhiBin");
163  double PhiMin = conf_.getParameter<double>("PhiMin");
164  double PhiMax = conf_.getParameter<double>("PhiMax");
165 
166  int EtaBin = conf_.getParameter<int>( "EtaBin");
167  double EtaMin = conf_.getParameter<double>("EtaMin");
168  double EtaMax = conf_.getParameter<double>("EtaMax");
169 
170 
171  ntracks = dqmStore_->book1D("ntracks","number of PV tracks (p_{T} > 1 GeV)", 3*TKNoBin, TKNoMin, (TKNoMax+0.5)*3.-0.5);
172  ntracks->setAxisTitle("Number of PV Tracks (p_{T} > 1 GeV) per Event", 1);
173  ntracks->setAxisTitle("Number of Event", 2);
174 
175  weight = dqmStore_->book1D("weight","weight of PV tracks (p_{T} > 1 GeV)", 100, 0., 1.);
176  weight->setAxisTitle("weight of PV Tracks (p_{T} > 1 GeV) per Event", 1);
177  weight->setAxisTitle("Number of Event", 2);
178 
179  sumpt = dqmStore_->book1D("sumpt", "#Sum p_{T} of PV tracks (p_{T} > 1 GeV)", 100,-0.5,199.5);
180  chi2ndf = dqmStore_->book1D("chi2ndf", "PV tracks (p_{T} > 1 GeV) #chi^{2}/ndof", 100, 0., 200. );
181  chi2prob = dqmStore_->book1D("chi2prob","PV tracks (p_{T} > 1 GeV) #chi^{2} probability",100, 0., 1. );
182  dxy = dqmStore_->book1D("dxy", "PV tracks (p_{T} > 1 GeV) d_{xy} (cm)", DxyBin, DxyMin, DxyMax);
183  dz = dqmStore_->book1D("dz", "PV tracks (p_{T} > 1 GeV) d_{z} (cm)", DzBin, DzMin, DzMax );
184  dxyErr = dqmStore_->book1D("dxyErr", "PV tracks (p_{T} > 1 GeV) d_{xy} error (cm)", 100, 0., 1. );
185  dzErr = dqmStore_->book1D("dzErr", "PV tracks (p_{T} > 1 GeV) d_{z} error(cm)", 100, 0., 1. );
186 
187  dxyVsPhi_pt1 = dqmStore_->bookProfile("dxyVsPhi_pt1", "PV tracks (p_{T} > 1 GeV) d_{xy} (cm) VS track #phi",PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,"");
188  dxyVsPhi_pt1->setAxisTitle("PV track (p_{T} > 1 GeV) #phi", 1);
189  dxyVsPhi_pt1->setAxisTitle("PV track (p_{T} > 1 GeV) d_{xy}",2);
190  dzVsPhi_pt1 = dqmStore_->bookProfile("dzVsPhi_pt1", "PV tracks (p_{T} > 1 GeV) d_{z} (cm) VS track #phi", PhiBin, PhiMin, PhiMax, DzBin, DzMin, DzMax, "");
191  dzVsPhi_pt1->setAxisTitle("PV track (p_{T} > 1 GeV) #phi", 1);
192  dzVsPhi_pt1->setAxisTitle("PV track (p_{T} > 1 GeV) d_{z}",2);
193 
194  dxyVsEta_pt1 = dqmStore_->bookProfile("dxyVsEta_pt1", "PV tracks (p_{T} > 1 GeV) d_{xy} (cm) VS track #eta",EtaBin, EtaMin, EtaMax, DxyBin, DxyMin, DxyMax,"");
195  dxyVsEta_pt1->setAxisTitle("PV track (p_{T} > 1 GeV) #eta", 1);
196  dxyVsEta_pt1->setAxisTitle("PV track (p_{T} > 1 GeV) d_{xy}",2);
197  dzVsEta_pt1 = dqmStore_->bookProfile("dzVsEta_pt1", "PV tracks (p_{T} > 1 GeV) d_{z} (cm) VS track #eta", EtaBin, EtaMin, EtaMax, DzBin, DzMin, DzMax, "");
198  dzVsEta_pt1->setAxisTitle("PV track (p_{T} > 1 GeV) #eta", 1);
199  dzVsEta_pt1->setAxisTitle("PV track (p_{T} > 1 GeV) d_{z}",2);
200 
201  dxyVsPhi_pt10 = dqmStore_->bookProfile("dxyVsPhi_pt10", "PV tracks (p_{T} > 1 GeV) d_{xy} (cm) VS track #phi",PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,"");
202  dxyVsPhi_pt10->setAxisTitle("PV track (p_{T} > 10 GeV) #phi", 1);
203  dxyVsPhi_pt10->setAxisTitle("PV track (p_{T} > 10 GeV) d_{xy}",2);
204  dzVsPhi_pt10 = dqmStore_->bookProfile("dzVsPhi_pt10", "PV tracks (p_{T} > 10 GeV) d_{z} (cm) VS track #phi", PhiBin, PhiMin, PhiMax, DzBin, DzMin, DzMax, "");
205  dzVsPhi_pt10->setAxisTitle("PV track (p_{T} > 10 GeV) #phi", 1);
206  dzVsPhi_pt10->setAxisTitle("PV track (p_{T} > 10 GeV) d_{z}",2);
207 
208  dxyVsEta_pt10 = dqmStore_->bookProfile("dxyVsEta_pt10", "PV tracks (p_{T} > 10 GeV) d_{xy} (cm) VS track #eta",EtaBin, EtaMin, EtaMax, DxyBin, DxyMin, DxyMax,"");
209  dxyVsEta_pt10->setAxisTitle("PV track (p_{T} > 10 GeV) #eta", 1);
210  dxyVsEta_pt10->setAxisTitle("PV track (p_{T} > 10 GeV) d_{xy}",2);
211  dzVsEta_pt10 = dqmStore_->bookProfile("dzVsEta_pt10", "PV tracks (p_{T} > 10 GeV) d_{z} (cm) VS track #eta", EtaBin, EtaMin, EtaMax, DzBin, DzMin, DzMax, "");
212  dzVsEta_pt10->setAxisTitle("PV track (p_{T} > 10 GeV) #eta", 1);
213  dzVsEta_pt10->setAxisTitle("PV track (p_{T} > 10 GeV) d_{z}",2);
214 
215 }
216 
217 
219 {}
220 
222 {
224  iEvent.getByToken(vertexToken_, recVtxs);
225 
226  edm::Handle<reco::BeamSpot> beamSpotHandle;
227  iEvent.getByToken(beamspotToken_,beamSpotHandle);
228 
229  //
230  // check for absent products and simply "return" in that case
231  //
232  if (recVtxs.isValid() == false || beamSpotHandle.isValid()== false){
233  edm::LogWarning("PrimaryVertexMonitor")
234  <<" Some products not available in the event: VertexCollection "
235  <<vertexInputTag_<<" "
236  <<recVtxs.isValid() <<" BeamSpot "
237  <<beamSpotInputTag_<<" "
238  <<beamSpotHandle.isValid()<<". Skipping plots for this event";
239  return;
240  }
241 
242  BeamSpot beamSpot = *beamSpotHandle;
243 
244  nbvtx->Fill(recVtxs->size()*1.);
245 
246  vertexPlots(recVtxs->front(), beamSpot, 1);
247 
248  // fill PV tracks MEs (as now, for alignment)
249  pvTracksPlots(recVtxs->front());
250 
251  for(reco::VertexCollection::const_iterator v=recVtxs->begin()+1;
252  v!=recVtxs->end(); ++v){
253  vertexPlots(*v, beamSpot, 0);
254  }
255  // Beamline plots:
256  bsX->Fill(beamSpot.x0());
257  bsY->Fill(beamSpot.y0());
258  bsZ->Fill(beamSpot.z0());
259  bsSigmaZ->Fill(beamSpot.sigmaZ());
260  bsDxdz->Fill(beamSpot.dxdz());
261  bsDydz->Fill(beamSpot.dydz());
262  bsBeamWidthX->Fill(beamSpot.BeamWidthX()*10000);
263  bsBeamWidthY->Fill(beamSpot.BeamWidthY()*10000);
264  // bsType->Fill(beamSpot.type());
265 
266 }
267 
268 void
270 {
271 
272  const math::XYZPoint myVertex(v.position().x(),v.position().y(),v.position().z());
273 
274  if ( !v.isValid() ) return;
275  if ( v.isFake() ) return;
276 
277  if ( v.tracksSize() == 0 ) {
278  ntracks -> Fill ( 0 );
279  return;
280  }
281 
282  size_t nTracks = 0;
283  float sumPT = 0.;
285 
286  bool isHighPurity = (**t).quality(reco::TrackBase::highPurity);
287  if ( !isHighPurity ) continue;
288 
289  float pt = (**t).pt();
290  if ( pt < 1. ) continue;
291 
292  nTracks++;
293 
294  float eta = (**t).eta();
295  float phi = (**t).phi();
296 
297  float w = v.trackWeight(*t);
298  float chi2NDF = (**t).normalizedChi2();
299  float chi2Prob = TMath::Prob((**t).chi2(),(int)(**t).ndof());
300  float Dxy = (**t).dxy(myVertex);
301  float Dz = (**t).dz(myVertex);
302  float DxyErr = (**t).dxyError();
303  float DzErr = (**t).dzError();
304 
305  sumPT += pt*pt;
306 
307 
308  // fill MEs
309  weight -> Fill (w);
310  chi2ndf -> Fill (chi2NDF);
311  chi2prob -> Fill (chi2Prob);
312  dxy -> Fill (Dxy);
313  dz -> Fill (Dz);
314  dxyErr -> Fill (DxyErr);
315  dzErr -> Fill (DzErr);
316 
317  dxyVsPhi_pt1 -> Fill (phi,Dxy);
318  dzVsPhi_pt1 -> Fill (phi,Dz);
319  dxyVsEta_pt1 -> Fill (eta,Dxy);
320  dzVsEta_pt1 -> Fill (eta,Dz);
321 
322  if ( pt < 10. ) continue;
323  dxyVsPhi_pt10 -> Fill (phi,Dxy);
324  dzVsPhi_pt10 -> Fill (phi,Dz);
325  dxyVsEta_pt10 -> Fill (eta,Dxy);
326  dzVsEta_pt10 -> Fill (eta,Dz);
327  }
328  ntracks -> Fill (float(nTracks));
329  sumpt -> Fill (sumPT);
330 
331 }
332 
334 {
335 
336  if (i < 0 || i > 1) return;
337  if (!v.isValid()) type[i]->Fill(2.);
338  else if (v.isFake()) type[i]->Fill(1.);
339  else type[i]->Fill(0.);
340 
341  if (v.isValid() && !v.isFake()) {
342  float weight = 0;
344  t!=v.tracks_end(); t++) weight+= v.trackWeight(*t);
345  trksWeight[i]->Fill(weight);
346  nbtksinvtx[i]->Fill(v.tracksSize());
347 
348  vtxchi2[i]->Fill(v.chi2());
349  vtxndf[i]->Fill(v.ndof());
351 
352  xrec[i]->Fill(v.position().x());
353  yrec[i]->Fill(v.position().y());
354  zrec[i]->Fill(v.position().z());
355 
356  float xb = beamSpot.x0() + beamSpot.dxdz() * (v.position().z() - beamSpot.z0());
357  float yb = beamSpot.y0() + beamSpot.dydz() * (v.position().z() - beamSpot.z0());
358  xDiff[i]->Fill((v.position().x() - xb)*10000);
359  yDiff[i]->Fill((v.position().y() - yb)*10000);
360 
361  xerr[i]->Fill(v.xError()*10000);
362  yerr[i]->Fill(v.yError()*10000);
363  zerr[i]->Fill(v.zError()*10000);
364  xerrVsTrks[i]->Fill(weight, v.xError()*10000);
365  yerrVsTrks[i]->Fill(weight, v.yError()*10000);
366  zerrVsTrks[i]->Fill(weight, v.zError()*10000);
367 
368  nans[i]->Fill(1.,edm::isNotFinite(v.position().x())*1.);
369  nans[i]->Fill(2.,edm::isNotFinite(v.position().y())*1.);
370  nans[i]->Fill(3.,edm::isNotFinite(v.position().z())*1.);
371 
372  int index = 3;
373  for (int k = 0; k != 3; k++) {
374  for (int j = k; j != 3; j++) {
375  index++;
376  nans[i]->Fill(index*1., edm::isNotFinite(v.covariance(k, j))*1.);
377  // in addition, diagonal element must be positive
378  if (j == k && v.covariance(k, j) < 0) {
379  nans[i]->Fill(index*1., 1.);
380  }
381  }
382  }
383  }
384 }
385 
386 
388 {
389 }
390 
391 
392 //define this as a plug-in
type
Definition: HCALResponse.h:21
MonitorElement * xerrVsTrks[2]
T getParameter(std::string const &) const
double z0() const
z coordinate
Definition: BeamSpot.h:68
MonitorElement * xerr[2]
int i
Definition: DBlmapReader.cc:9
MonitorElement * vtxndf[2]
MonitorElement * dxyVsEta_pt1
MonitorElement * dzVsPhi_pt10
MonitorElement * dzVsPhi_pt1
void pvTracksPlots(const reco::Vertex &v)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:942
trackRef_iterator tracks_end() const
last iterator over tracks
Definition: Vertex.cc:44
void vertexPlots(const reco::Vertex &v, const reco::BeamSpot &beamSpot, int i)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
double zError() const
error on z
Definition: Vertex.h:118
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
MonitorElement * bsSigmaZ
edm::InputTag beamSpotInputTag_
bool isValid() const
Tells whether the vertex is valid.
Definition: Vertex.h:60
#define NULL
Definition: scimark2.h:8
MonitorElement * chi2ndf
double covariance(int i, int j) const
(i, j)-th element of error matrix, i, j = 0, ... 2
Definition: Vertex.h:123
MonitorElement * dxyVsPhi_pt10
const double EtaMax[kNumberCalorimeter]
T eta() const
MonitorElement * xDiff[2]
const Point & position() const
position
Definition: Vertex.h:106
MonitorElement * dzVsEta_pt1
edm::ParameterSet conf_
void Fill(long long x)
MonitorElement * zerrVsTrks[2]
MonitorElement * nans[2]
double dydz() const
dydz slope
Definition: BeamSpot.h:84
int iEvent
Definition: GenABIO.cc:230
bool isNotFinite(T x)
Definition: isFinite.h:10
MonitorElement * yerrVsTrks[2]
MonitorElement * dxyVsEta_pt10
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * zerr[2]
MonitorElement * yrec[2]
double chi2() const
chi-squares
Definition: Vertex.h:95
int j
Definition: DBlmapReader.cc:9
float ChiSquaredProbability(double chiSquared, double nrDOF)
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:86
MonitorElement * zrec[2]
const double EtaMin[kNumberCalorimeter]
float trackWeight(const TREF &r) const
returns the weight with which a Track has contributed to the vertex-fit.
Definition: Vertex.h:74
MonitorElement * vtxchi2[2]
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1256
edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
bool isValid() const
Definition: HandleBase.h:76
double dxdz() const
dxdz slope
Definition: BeamSpot.h:82
double ndof() const
Definition: Vertex.h:102
MonitorElement * dzVsEta_pt10
int k[5][pyjets_maxn]
virtual void beginRun(const edm::Run &, const edm::EventSetup &)
double xError() const
error on x
Definition: Vertex.h:114
bool isFake() const
Definition: Vertex.h:64
MonitorElement * chi2prob
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
MonitorElement * nbtksinvtx[2]
double sigmaZ() const
sigma z
Definition: BeamSpot.h:80
TH1F * getTH1F(void) const
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:88
std::string const & label() const
Definition: InputTag.h:42
MonitorElement * yerr[2]
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector&lt;TrackRef&gt;
Definition: Vertex.h:37
double y0() const
y coordinate
Definition: BeamSpot.h:66
MonitorElement * xrec[2]
MonitorElement * vtxprob[2]
T w() const
MonitorElement * ntracks
trackRef_iterator tracks_begin() const
first iterator over tracks
Definition: Vertex.cc:39
MonitorElement * bsBeamWidthY
int weight
Definition: histoStyle.py:50
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:1070
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * yDiff[2]
double yError() const
error on y
Definition: Vertex.h:116
MonitorElement * trksWeight[2]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:655
virtual void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup)
size_t tracksSize() const
number of tracks
Definition: Vertex.cc:34
PrimaryVertexMonitor(const edm::ParameterSet &pSet)
Definition: Run.h:41
MonitorElement * bsBeamWidthX
MonitorElement * dxyVsPhi_pt1
double x0() const
x coordinate
Definition: BeamSpot.h:64
Definition: DDAxes.h:10