CMS 3D CMS Logo

VertexHistogramMaker.cc
Go to the documentation of this file.
11 #include "TH2F.h"
12 #include "TH1F.h"
13 #include "TProfile.h"
14 
16  : m_currdir(nullptr),
17  m_maxLS(100),
18  m_weightThreshold(0.5),
19  m_trueOnly(true),
20  m_runHisto(true),
21  m_runHistoProfile(true),
22  m_runHistoBXProfile(true),
23  m_runHistoBXProfile2D(false),
24  m_runHisto2D(false),
25  m_bsConstrained(false),
26  m_histoParameters(),
27  m_rhm(iC),
28  m_fhm(iC) {}
29 
31  : m_currdir(nullptr),
32  m_maxLS(iConfig.getParameter<unsigned int>("maxLSBeforeRebin")),
33  m_weightThreshold(iConfig.getUntrackedParameter<double>("weightThreshold", 0.5)),
34  m_trueOnly(iConfig.getUntrackedParameter<bool>("trueOnly", true)),
35  m_runHisto(iConfig.getUntrackedParameter<bool>("runHisto", true)),
36  m_runHistoProfile(iConfig.getUntrackedParameter<bool>("runHistoProfile", true)),
37  m_runHistoBXProfile(iConfig.getUntrackedParameter<bool>("runHistoBXProfile", true)),
38  m_runHistoBXProfile2D(iConfig.getUntrackedParameter<bool>("runHistoBXProfile2D", false)),
39  m_runHisto2D(iConfig.getUntrackedParameter<bool>("runHisto2D", false)),
40  m_bsConstrained(iConfig.getParameter<bool>("bsConstrained")),
41  m_histoParameters(iConfig.getUntrackedParameter<edm::ParameterSet>("histoParameters", edm::ParameterSet())),
42  m_lumiDetailsToken(iC.consumes<LumiDetails, edm::InLumi>(edm::InputTag(std::string("lumiProducer")))),
43  m_rhm(iC, false),
44  m_fhm(iC, true) {}
45 
47 
50  TFileDirectory* currdir = &(tfserv->tFileDirectory());
51 
52  if (!dirname.empty()) {
53  currdir = new TFileDirectory(tfserv->mkdir(dirname));
54  m_currdir = currdir;
55  }
56 
57  edm::LogInfo("HistogramBooking") << "Vertex histogram booking in directory " << dirname;
58 
59  m_hnvtx = currdir->make<TH1F>("nvtx", "Number of Vertices", 60, -0.5, 59.5);
60  m_hnvtx->GetXaxis()->SetTitle("vertices");
61  m_hnvtx->GetYaxis()->SetTitle("Events");
62 
63  m_hntruevtx = currdir->make<TH1F>("ntruevtx", "Number of True Vertices", 60, -0.5, 59.5);
64  m_hntruevtx->GetXaxis()->SetTitle("vertices");
65  m_hntruevtx->GetYaxis()->SetTitle("Events");
66 
67  m_hntruevtxvslumi = currdir->make<TProfile>("ntruevtxvslumi", "Number of True Vertices vs BX lumi", 250, 0., 10.);
68  m_hntruevtxvslumi->GetXaxis()->SetTitle("BX lumi [10^{30}cm^{-2}s^{-1}]");
69  m_hntruevtxvslumi->GetYaxis()->SetTitle("Vertices");
70 
72  currdir->make<TH2D>("ntruevtxvslumi2D", "Number of True Vertices vs BX lumi", 250, 0., 10., 100, -0.5, 99.5);
73  m_hntruevtxvslumi2D->GetXaxis()->SetTitle("BX lumi [10^{30}cm^{-2}s^{-1}]");
74  m_hntruevtxvslumi2D->GetYaxis()->SetTitle("Vertices");
75 
76  m_hntracks = currdir->make<TH1F>("ntracks", "Number of Tracks", 300, -0.5, 299.5);
77  m_hntracks->GetXaxis()->SetTitle("tracks");
78  m_hntracks->GetYaxis()->SetTitle("Vertices");
79 
80  m_hsqsumptsq = currdir->make<TH1F>("sqsumptsq", "sqrt(sum pt**2)", 1000, 0., 1000.);
81  m_hsqsumptsq->GetXaxis()->SetTitle("sqrt(#Sigma pt^{2}) (GeV)");
82  m_hsqsumptsq->GetYaxis()->SetTitle("Vertices");
83 
84  char htitle[300];
85  sprintf(htitle, "sqrt(sum pt**2) of Tracks weight > %f", m_weightThreshold);
86  m_hsqsumptsqheavy = currdir->make<TH1F>("sqsumptsqheavy", htitle, 1000, 0., 1000.);
87  m_hsqsumptsqheavy->GetXaxis()->SetTitle("sqrt(#Sigma pt^{2}) (GeV)");
88  m_hsqsumptsqheavy->GetYaxis()->SetTitle("Vertices");
89 
90  sprintf(htitle, "Number of Tracks weight > %f", m_weightThreshold);
91  m_hnheavytracks = currdir->make<TH1F>("nheavytracks", htitle, 200, -0.5, 199.5);
92  m_hnheavytracks->GetXaxis()->SetTitle("tracks");
93  m_hnheavytracks->GetYaxis()->SetTitle("Vertices");
94 
95  m_hndof = currdir->make<TH1F>("ndof", "Number of degree of freedom", 250, -0.5, 499.5);
96  m_hndof->GetXaxis()->SetTitle("ndof");
97  m_hndof->GetYaxis()->SetTitle("Vertices");
98 
99  m_hndofvstracks = currdir->make<TH2F>("ndofvstracks", "Ndof vs Ntracks", 300, -0.5, 299.5, 250, -0.5, 499.5);
100  m_hndofvstracks->GetXaxis()->SetTitle("tracks");
101  m_hndofvstracks->GetYaxis()->SetTitle("ndof");
102 
103  m_hndofvsvtxz = currdir->make<TProfile>("ndofvsvtxz",
104  "Ndof vs Vertex Z position",
105  200,
106  m_histoParameters.getUntrackedParameter<double>("zMin", -20.),
107  m_histoParameters.getUntrackedParameter<double>("zMax", 20.));
108  m_hndofvsvtxz->GetXaxis()->SetTitle("Z [cm]");
109  m_hndofvsvtxz->GetYaxis()->SetTitle("ndof");
110 
111  m_hntracksvsvtxz = currdir->make<TProfile>("ntracksvsvtxz",
112  "Ntracks vs Vertex Z position",
113  200,
114  m_histoParameters.getUntrackedParameter<double>("zMin", -20.),
115  m_histoParameters.getUntrackedParameter<double>("zMax", 20.));
116  m_hntracksvsvtxz->GetXaxis()->SetTitle("Z [cm]");
117  m_hntracksvsvtxz->GetYaxis()->SetTitle("tracks");
118 
119  m_haveweightvsvtxz = currdir->make<TProfile>("aveweightvsvtxz",
120  "Average weight vs Vertex Z position",
121  200,
122  m_histoParameters.getUntrackedParameter<double>("zMin", -20.),
123  m_histoParameters.getUntrackedParameter<double>("zMax", 20.));
124  m_haveweightvsvtxz->GetXaxis()->SetTitle("Z [cm]");
125  m_haveweightvsvtxz->GetYaxis()->SetTitle("Average weight");
126 
127  m_haveweightvsvtxzchk = currdir->make<TProfile>("aveweightvsvtxzchk",
128  "Average weight vs Vertex Z position (check)",
129  200,
130  m_histoParameters.getUntrackedParameter<double>("zMin", -20.),
131  m_histoParameters.getUntrackedParameter<double>("zMax", 20.));
132  m_haveweightvsvtxzchk->GetXaxis()->SetTitle("Z [cm]");
133  m_haveweightvsvtxzchk->GetYaxis()->SetTitle("Average weight");
134 
135  m_hweights = currdir->make<TH1F>("weights", "Tracks weights", 51, 0., 1.02);
136  m_hweights->GetXaxis()->SetTitle("weights");
137  m_hweights->GetYaxis()->SetTitle("Tracks");
138 
139  m_haveweight = currdir->make<TH1F>("aveweight", "Tracks average weights sum", 51, 0., 1.02);
140  m_haveweight->GetXaxis()->SetTitle("Average weight");
141  m_haveweight->GetYaxis()->SetTitle("Vertices");
142 
143  m_hvtxx = currdir->make<TH1F>("vtxx",
144  "Vertex X position",
145  m_histoParameters.getUntrackedParameter<unsigned int>("nBinX", 200),
146  m_histoParameters.getUntrackedParameter<double>("xMin", -1.),
147  m_histoParameters.getUntrackedParameter<double>("xMax", 1.));
148  m_hvtxx->GetXaxis()->SetTitle("X [cm]");
149  m_hvtxx->GetYaxis()->SetTitle("Vertices");
150 
151  m_hvtxy = currdir->make<TH1F>("vtxy",
152  "Vertex Y position",
153  m_histoParameters.getUntrackedParameter<unsigned int>("nBinY", 200),
154  m_histoParameters.getUntrackedParameter<double>("yMin", -1.),
155  m_histoParameters.getUntrackedParameter<double>("yMax", 1.));
156  m_hvtxy->GetXaxis()->SetTitle("Y [cm]");
157  m_hvtxy->GetYaxis()->SetTitle("Vertices");
158 
159  m_hvtxz = currdir->make<TH1F>("vtxz",
160  "Vertex Z position",
161  m_histoParameters.getUntrackedParameter<unsigned int>("nBinZ", 200),
162  m_histoParameters.getUntrackedParameter<double>("zMin", -20.),
163  m_histoParameters.getUntrackedParameter<double>("zMax", 20.));
164  m_hvtxz->GetXaxis()->SetTitle("Z [cm]");
165  m_hvtxz->GetYaxis()->SetTitle("Vertices");
166 
167  if (m_runHisto) {
168  m_hvtxxrun = m_rhm.makeTH1F("vtxxrun",
169  "Vertex X position",
170  m_histoParameters.getUntrackedParameter<unsigned int>("nBinX", 200),
171  m_histoParameters.getUntrackedParameter<double>("xMin", -1.),
172  m_histoParameters.getUntrackedParameter<double>("xMax", 1.));
173 
174  m_hvtxyrun = m_rhm.makeTH1F("vtxyrun",
175  "Vertex Y position",
176  m_histoParameters.getUntrackedParameter<unsigned int>("nBinY", 200),
177  m_histoParameters.getUntrackedParameter<double>("yMin", -1.),
178  m_histoParameters.getUntrackedParameter<double>("yMax", 1.));
179 
180  m_hvtxzrun = m_rhm.makeTH1F("vtxzrun",
181  "Vertex Z position",
182  m_histoParameters.getUntrackedParameter<unsigned int>("nBinZ", 200),
183  m_histoParameters.getUntrackedParameter<double>("zMin", -20.),
184  m_histoParameters.getUntrackedParameter<double>("zMax", 20.));
185 
186  if (m_runHistoProfile) {
188  "vtxxvsorbrun", "Vertex X position vs orbit number", 4 * m_maxLS, 0.5, m_maxLS * 262144 + 0.5);
190  "vtxyvsorbrun", "Vertex Y position vs orbit number", 4 * m_maxLS, 0.5, m_maxLS * 262144 + 0.5);
192  "vtxzvsorbrun", "Vertex Z position vs orbit number", 4 * m_maxLS, 0.5, m_maxLS * 262144 + 0.5);
194  "nvtxvsorbrun", "Number of true vertices vs orbit number", m_maxLS, 0.5, m_maxLS * 262144 + 0.5);
195  }
196 
197  if (m_runHisto2D) {
198  m_hnvtxvsbxvsorbrun = m_rhm.makeTProfile2D("nvtxvsbxvsorbrun",
199  "Number of true vertices vs BX vs orbit number",
200  3564,
201  -0.5,
202  3563.5,
203  m_maxLS,
204  0.5,
205  m_maxLS * 262144 + 0.5);
206  m_hnvtxvsorbrun2D = m_rhm.makeTH2F("nvtxvsorbrun2D",
207  "Number of true vertices vs orbit number",
208  m_maxLS,
209  0.5,
210  m_maxLS * 262144 + 0.5,
211  60,
212  -0.5,
213  59.5);
214  }
215 
216  if (m_runHistoBXProfile) {
217  m_hvtxxvsbxrun = m_fhm.makeTProfile("vtxxvsbxrun", "Vertex X position vs BX number", 3564, -0.5, 3563.5);
218  m_hvtxyvsbxrun = m_fhm.makeTProfile("vtxyvsbxrun", "Vertex Y position vs BX number", 3564, -0.5, 3563.5);
219  m_hvtxzvsbxrun = m_fhm.makeTProfile("vtxzvsbxrun", "Vertex Z position vs BX number", 3564, -0.5, 3563.5);
220 
221  m_hnvtxvsbxrun = m_rhm.makeTProfile("nvtxvsbxrun", "Number of true vertices vs BX number", 3564, -0.5, 3563.5);
222 
223  if (m_runHistoBXProfile2D) {
225  "nvtxvsbxvslumirun", "Number of vertices vs BX and BX lumi", 3564, -0.5, 3563.5, 250, 0., 10.);
226  }
227  if (m_runHisto2D) {
228  m_hvtxxvsbx2drun = m_fhm.makeTH2F("vtxxvsbx2drun",
229  "Vertex X position vs BX number",
230  3564,
231  -0.5,
232  3563.5,
233  m_histoParameters.getUntrackedParameter<unsigned int>("nBinX", 200),
234  m_histoParameters.getUntrackedParameter<double>("xMin", -1.),
235  m_histoParameters.getUntrackedParameter<double>("xMax", 1.));
236  m_hvtxyvsbx2drun = m_fhm.makeTH2F("vtxyvsbx2drun",
237  "Vertex Y position vs BX number",
238  3564,
239  -0.5,
240  3563.5,
241  m_histoParameters.getUntrackedParameter<unsigned int>("nBinY", 200),
242  m_histoParameters.getUntrackedParameter<double>("yMin", -1.),
243  m_histoParameters.getUntrackedParameter<double>("yMax", 1.));
244  m_hvtxzvsbx2drun = m_fhm.makeTH2F("vtxzvsbx2drun",
245  "Vertex Z position vs BX number",
246  3564,
247  -0.5,
248  3563.5,
249  m_histoParameters.getUntrackedParameter<unsigned int>("nBinZ", 200),
250  m_histoParameters.getUntrackedParameter<double>("zMin", -20.),
251  m_histoParameters.getUntrackedParameter<double>("zMax", 20.));
252  }
253  }
254  }
255 }
256 
258  TFileDirectory* currdir = m_currdir;
259  if (currdir == nullptr) {
261  currdir = &(tfserv->tFileDirectory());
262  }
263 
264  m_rhm.beginRun(iRun, *currdir);
265  m_fhm.beginRun(iRun, *currdir);
266 
267  if (m_runHisto) {
268  (*m_hvtxxrun)->GetXaxis()->SetTitle("X [cm]");
269  (*m_hvtxxrun)->GetYaxis()->SetTitle("Vertices");
270  (*m_hvtxyrun)->GetXaxis()->SetTitle("Y [cm]");
271  (*m_hvtxyrun)->GetYaxis()->SetTitle("Vertices");
272  (*m_hvtxzrun)->GetXaxis()->SetTitle("Z [cm]");
273  (*m_hvtxzrun)->GetYaxis()->SetTitle("Vertices");
274 
275  if (m_runHistoProfile) {
276  (*m_hvtxxvsorbrun)->GetXaxis()->SetTitle("time [orbit#]");
277  (*m_hvtxxvsorbrun)->GetYaxis()->SetTitle("X [cm]");
278  (*m_hvtxxvsorbrun)->SetCanExtend(TH1::kAllAxes);
279  (*m_hvtxyvsorbrun)->GetXaxis()->SetTitle("time [orbit#]");
280  (*m_hvtxyvsorbrun)->GetYaxis()->SetTitle("Y [cm]");
281  (*m_hvtxyvsorbrun)->SetCanExtend(TH1::kAllAxes);
282  (*m_hvtxzvsorbrun)->GetXaxis()->SetTitle("time [orbit#]");
283  (*m_hvtxzvsorbrun)->GetYaxis()->SetTitle("Z [cm]");
284  (*m_hvtxzvsorbrun)->SetCanExtend(TH1::kAllAxes);
285  (*m_hnvtxvsorbrun)->GetXaxis()->SetTitle("time [orbit#]");
286  (*m_hnvtxvsorbrun)->GetYaxis()->SetTitle("Nvertices");
287  (*m_hnvtxvsorbrun)->SetCanExtend(TH1::kAllAxes);
288  }
289 
290  if (m_runHistoBXProfile) {
291  (*m_hvtxxvsbxrun)->GetXaxis()->SetTitle("BX");
292  (*m_hvtxxvsbxrun)->GetYaxis()->SetTitle("X [cm]");
293  (*m_hvtxyvsbxrun)->GetXaxis()->SetTitle("BX");
294  (*m_hvtxyvsbxrun)->GetYaxis()->SetTitle("Y [cm]");
295  (*m_hvtxzvsbxrun)->GetXaxis()->SetTitle("BX");
296  (*m_hvtxzvsbxrun)->GetYaxis()->SetTitle("Z [cm]");
297  (*m_hnvtxvsbxrun)->GetXaxis()->SetTitle("BX");
298  (*m_hnvtxvsbxrun)->GetYaxis()->SetTitle("Nvertices");
299  if (m_runHistoBXProfile2D) {
300  (*m_hnvtxvsbxvslumirun)->GetXaxis()->SetTitle("BX");
301  (*m_hnvtxvsbxvslumirun)->GetYaxis()->SetTitle("BX lumi [10^{30}cm^{-2}s^{-1}]");
302  }
303  if (m_runHisto2D) {
304  (*m_hvtxxvsbx2drun)->GetXaxis()->SetTitle("BX");
305  (*m_hvtxxvsbx2drun)->GetYaxis()->SetTitle("X [cm]");
306  (*m_hvtxyvsbx2drun)->GetXaxis()->SetTitle("BX");
307  (*m_hvtxyvsbx2drun)->GetYaxis()->SetTitle("Y [cm]");
308  (*m_hvtxzvsbx2drun)->GetXaxis()->SetTitle("BX");
309  (*m_hvtxzvsbx2drun)->GetYaxis()->SetTitle("Z [cm]");
310  }
311  }
312 
313  if (m_runHisto2D) {
314  (*m_hnvtxvsbxvsorbrun)->GetXaxis()->SetTitle("BX#");
315  (*m_hnvtxvsbxvsorbrun)->GetYaxis()->SetTitle("time [orbit#]");
316  (*m_hnvtxvsbxvsorbrun)->SetCanExtend(TH1::kAllAxes);
317  (*m_hnvtxvsorbrun2D)->GetXaxis()->SetTitle("time [orbit#]");
318  (*m_hnvtxvsorbrun2D)->GetYaxis()->SetTitle("Nvertices");
319  (*m_hnvtxvsorbrun2D)->SetCanExtend(TH1::kAllAxes);
320  }
321  }
322 }
323 
324 void VertexHistogramMaker::fill(const unsigned int orbit,
325  const int bx,
326  const float bxlumi,
328  const double weight) {
329  m_hnvtx->Fill(vertices.size(), weight);
330 
331  int ntruevtx = 0;
332  for (reco::VertexCollection::const_iterator vtx = vertices.begin(); vtx != vertices.end(); ++vtx) {
333  if (!vtx->isFake())
334  ntruevtx++;
335 
336  if (!(m_trueOnly && vtx->isFake())) {
337  double aveweight =
338  m_bsConstrained ? vtx->ndof() / (2. * vtx->tracksSize()) : (vtx->ndof() + 3) / (2. * vtx->tracksSize());
339 
340  m_hntracks->Fill(vtx->tracksSize(), weight);
341  m_hndof->Fill(vtx->ndof(), weight);
342  m_haveweight->Fill(aveweight, weight);
343  m_hndofvstracks->Fill(vtx->tracksSize(), vtx->ndof(), weight);
344  m_hndofvsvtxz->Fill(vtx->z(), vtx->ndof(), weight);
345  m_hntracksvsvtxz->Fill(vtx->z(), vtx->tracksSize(), weight);
346  m_haveweightvsvtxz->Fill(vtx->z(), aveweight, weight);
347 
348  m_hvtxx->Fill(vtx->x(), weight);
349  m_hvtxy->Fill(vtx->y(), weight);
350  m_hvtxz->Fill(vtx->z(), weight);
351 
352  if (m_runHisto) {
353  if (m_hvtxxrun && *m_hvtxxrun)
354  (*m_hvtxxrun)->Fill(vtx->x(), weight);
355  if (m_hvtxyrun && *m_hvtxyrun)
356  (*m_hvtxyrun)->Fill(vtx->y(), weight);
357  if (m_hvtxzrun && *m_hvtxzrun)
358  (*m_hvtxzrun)->Fill(vtx->z(), weight);
359  if (m_runHistoProfile) {
361  (*m_hvtxxvsorbrun)->Fill(orbit, vtx->x(), weight);
363  (*m_hvtxyvsorbrun)->Fill(orbit, vtx->y(), weight);
365  (*m_hvtxzvsorbrun)->Fill(orbit, vtx->z(), weight);
366  }
367  if (m_runHistoBXProfile) {
369  (*m_hvtxxvsbxrun)->Fill(bx % 3564, vtx->x(), weight);
371  (*m_hvtxyvsbxrun)->Fill(bx % 3564, vtx->y(), weight);
373  (*m_hvtxzvsbxrun)->Fill(bx % 3564, vtx->z(), weight);
374  if (m_runHisto2D) {
376  (*m_hvtxxvsbx2drun)->Fill(bx % 3564, vtx->x(), weight);
378  (*m_hvtxyvsbx2drun)->Fill(bx % 3564, vtx->y(), weight);
380  (*m_hvtxzvsbx2drun)->Fill(bx % 3564, vtx->z(), weight);
381  }
382  }
383  }
384 
385  int nheavytracks = 0;
386  double sumpt2 = 0.;
387  double sumpt2heavy = 0.;
388 
389  for (reco::Vertex::trackRef_iterator trk = vtx->tracks_begin(); trk != vtx->tracks_end(); ++trk) {
390  sumpt2 += (*trk)->pt() * (*trk)->pt();
391 
392  if (vtx->trackWeight(*trk) > m_weightThreshold) {
393  nheavytracks++;
394  sumpt2heavy += (*trk)->pt() * (*trk)->pt();
395  }
396 
397  m_hweights->Fill(vtx->trackWeight(*trk), weight);
398  m_haveweightvsvtxzchk->Fill(vtx->z(), vtx->trackWeight(*trk), weight);
399  }
400 
401  m_hnheavytracks->Fill(nheavytracks, weight);
402  m_hsqsumptsq->Fill(sqrt(sumpt2), weight);
403  m_hsqsumptsqheavy->Fill(sqrt(sumpt2heavy), weight);
404  }
405  }
406 
407  m_hntruevtx->Fill(ntruevtx, weight);
408 
409  if (bxlumi >= 0.) {
410  m_hntruevtxvslumi->Fill(bxlumi, ntruevtx, weight);
411  m_hntruevtxvslumi2D->Fill(bxlumi, ntruevtx, weight);
412  }
413 
414  if (m_runHisto) {
415  if (m_runHistoProfile) {
417  (*m_hnvtxvsorbrun)->Fill(orbit, ntruevtx, weight);
418  }
419  if (m_runHistoBXProfile) {
421  (*m_hnvtxvsbxrun)->Fill(bx % 3564, ntruevtx, weight);
422  if (m_runHistoBXProfile2D) {
423  if (m_hnvtxvsbxvslumirun && *m_hnvtxvsbxvslumirun && bxlumi >= 0.)
424  (*m_hnvtxvsbxvslumirun)->Fill(bx % 3564, bxlumi, ntruevtx, weight);
425  }
426  }
427  if (m_runHisto2D) {
429  (*m_hnvtxvsbxvsorbrun)->Fill(bx % 3564, orbit, ntruevtx, weight);
431  if (ntruevtx < (*m_hnvtxvsorbrun2D)->GetYaxis()->GetXmax() &&
432  ntruevtx > (*m_hnvtxvsorbrun2D)->GetYaxis()->GetXmin()) {
433  (*m_hnvtxvsorbrun2D)->Fill(orbit, ntruevtx, weight);
434  }
435  }
436  }
437  }
438 }
439 
441  // get luminosity
442 
444  iEvent.getLuminosityBlock().getByToken(m_lumiDetailsToken, ld);
445 
446  float bxlumi = -1.;
447 
448  if (ld.isValid()) {
449  if (ld->isValid()) {
450  bxlumi = ld->lumiValue(LumiDetails::kOCC1, iEvent.bunchCrossing()) * 6.37;
451  }
452  }
453 
454  fill(iEvent.orbitNumber(), iEvent.bunchCrossing(), bxlumi, vertices, weight);
455 }
VertexHistogramMaker::m_hvtxyvsbxrun
TProfile ** m_hvtxyvsbxrun
Definition: VertexHistogramMaker.h:86
VertexHistogramMaker::m_hntracksvsvtxz
TProfile * m_hntracksvsvtxz
Definition: VertexHistogramMaker.h:68
reco::Vertex::trackRef_iterator
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
Definition: Vertex.h:38
VertexHistogramMaker::m_hvtxyrun
TH1F ** m_hvtxyrun
Definition: VertexHistogramMaker.h:76
electrons_cff.bool
bool
Definition: electrons_cff.py:372
VertexHistogramMaker::m_fhm
RunHistogramManager m_fhm
Definition: VertexHistogramMaker.h:55
MessageLogger.h
funct::false
false
Definition: Factorize.h:34
VertexHistogramMaker::fill
void fill(const edm::Event &iEvent, const reco::VertexCollection &vertices, const double weight=1.)
Definition: VertexHistogramMaker.cc:440
edm::Run
Definition: Run.h:45
LuminosityBlock.h
TFileDirectory::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileDirectory.h:53
RunHistogramManager::makeTH2F
TH2F ** makeTH2F(const char *name, const char *title, const unsigned int nbinx, const double xmin, const double xmax, const unsigned int nbiny, const double ymin, const double ymax)
Definition: RunHistogramManager.cc:64
edm
HLT enums.
Definition: AlignableModifier.h:19
mps_merge.weight
weight
Definition: mps_merge.py:88
VertexHistogramMaker::m_currdir
TFileDirectory * m_currdir
Definition: VertexHistogramMaker.h:41
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
edm::LogInfo
Definition: MessageLogger.h:254
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
VertexHistogramMaker::m_runHistoProfile
const bool m_runHistoProfile
Definition: VertexHistogramMaker.h:46
TFileService::tFileDirectory
TFileDirectory & tFileDirectory()
Definition: TFileService.h:42
VertexHistogramMaker::m_hvtxzrun
TH1F ** m_hvtxzrun
Definition: VertexHistogramMaker.h:77
VertexHistogramMaker::m_runHisto
const bool m_runHisto
Definition: VertexHistogramMaker.h:45
LumiDetails
Definition: LumiDetails.h:20
LumiDetails::kOCC1
Definition: LumiDetails.h:26
VertexHistogramMaker::m_runHisto2D
const bool m_runHisto2D
Definition: VertexHistogramMaker.h:49
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
VertexHistogramMaker::m_hnvtxvsbxvsorbrun
TProfile2D ** m_hnvtxvsbxvsorbrun
Definition: VertexHistogramMaker.h:82
TFileDirectory
Definition: TFileDirectory.h:24
VertexHistogramMaker::m_hvtxxrun
TH1F ** m_hvtxxrun
Definition: VertexHistogramMaker.h:75
VertexHistogramMaker::m_hnvtxvsbxvslumirun
TProfile2D ** m_hnvtxvsbxvslumirun
Definition: VertexHistogramMaker.h:90
edm::Handle
Definition: AssociativeIterator.h:50
VertexHistogramMaker::m_hnvtx
TH1F * m_hnvtx
Definition: VertexHistogramMaker.h:56
VertexHistogramMaker::m_bsConstrained
const bool m_bsConstrained
Definition: VertexHistogramMaker.h:50
VertexHistogramMaker::m_hnheavytracks
TH1F * m_hnheavytracks
Definition: VertexHistogramMaker.h:63
BTVHLTOfflineSource_cfi.dirname
dirname
Definition: BTVHLTOfflineSource_cfi.py:7
VertexHistogramMaker::m_hvtxyvsorbrun
TProfile ** m_hvtxyvsorbrun
Definition: VertexHistogramMaker.h:79
VertexHistogramMaker::m_hvtxzvsorbrun
TProfile ** m_hvtxzvsorbrun
Definition: VertexHistogramMaker.h:80
VertexHistogramMaker::m_hnvtxvsbxrun
TProfile ** m_hnvtxvsbxrun
Definition: VertexHistogramMaker.h:88
VertexHistogramMaker::m_rhm
RunHistogramManager m_rhm
Definition: VertexHistogramMaker.h:54
LumiDetails::isValid
bool isValid() const
Definition: LumiDetails.cc:44
Service.h
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
Run.h
LumiDetails::lumiValue
float lumiValue(AlgoType algo, unsigned int bx) const
Definition: LumiDetails.cc:72
VertexHistogramMaker::m_hvtxxvsorbrun
TProfile ** m_hvtxxvsorbrun
Definition: VertexHistogramMaker.h:78
VertexHistogramMaker::m_hndof
TH1F * m_hndof
Definition: VertexHistogramMaker.h:64
VertexHistogramMaker::m_hvtxzvsbxrun
TProfile ** m_hvtxzvsbxrun
Definition: VertexHistogramMaker.h:87
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition: badGlobalMuonTaggersAOD_cff.py:5
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
VertexHistogramMaker::m_haveweightvsvtxz
TProfile * m_haveweightvsvtxz
Definition: VertexHistogramMaker.h:69
VertexHistogramMaker::m_hndofvstracks
TH2F * m_hndofvstracks
Definition: VertexHistogramMaker.h:66
TFileService.h
TFileService::mkdir
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
RunHistogramManager::makeTH1F
TH1F ** makeTH1F(const char *name, const char *title, const unsigned int nbinx, const double xmin, const double xmax)
Definition: RunHistogramManager.cc:33
funct::true
true
Definition: Factorize.h:173
VertexHistogramMaker::m_hnvtxvsorbrun2D
TH2F ** m_hnvtxvsorbrun2D
Definition: VertexHistogramMaker.h:83
VertexHistogramMaker::m_lumiDetailsToken
edm::EDGetTokenT< LumiDetails > m_lumiDetailsToken
Definition: VertexHistogramMaker.h:52
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
VertexHistogramMaker::m_hvtxx
TH1F * m_hvtxx
Definition: VertexHistogramMaker.h:72
VertexHistogramMaker::m_hweights
TH1F * m_hweights
Definition: VertexHistogramMaker.h:71
VertexHistogramMaker::m_hndofvsvtxz
TProfile * m_hndofvsvtxz
Definition: VertexHistogramMaker.h:67
Event.h
LumiDetails.h
ParameterSet
Definition: Functions.h:16
edm::InLumi
Definition: BranchType.h:11
VertexHistogramMaker::m_haveweight
TH1F * m_haveweight
Definition: VertexHistogramMaker.h:65
VertexHistogramMaker::m_hvtxyvsbx2drun
TH2F ** m_hvtxyvsbx2drun
Definition: VertexHistogramMaker.h:93
RunHistogramManager::makeTProfile2D
TProfile2D ** makeTProfile2D(const char *name, const char *title, const unsigned int nbinx, const double xmin, const double xmax, const unsigned int nbiny, const double ymin, const double ymax)
Definition: RunHistogramManager.cc:82
VertexHistogramMaker::m_histoParameters
const edm::ParameterSet m_histoParameters
Definition: VertexHistogramMaker.h:51
RunHistogramManager::beginRun
void beginRun(const edm::Run &iRun)
Definition: RunHistogramManager.cc:101
edm::Service< TFileService >
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
VertexHistogramMaker::beginRun
void beginRun(const edm::Run &iRun)
Definition: VertexHistogramMaker.cc:257
VertexHistogramMaker::m_hvtxy
TH1F * m_hvtxy
Definition: VertexHistogramMaker.h:73
VertexHistogramMaker::m_hsqsumptsq
TH1F * m_hsqsumptsq
Definition: VertexHistogramMaker.h:61
VertexHistogramMaker::m_hnvtxvsorbrun
TProfile ** m_hnvtxvsorbrun
Definition: VertexHistogramMaker.h:81
VertexHistogramMaker::m_hntruevtx
TH1F * m_hntruevtx
Definition: VertexHistogramMaker.h:57
VertexHistogramMaker::m_hntracks
TH1F * m_hntracks
Definition: VertexHistogramMaker.h:60
VertexHistogramMaker::~VertexHistogramMaker
~VertexHistogramMaker()
Definition: VertexHistogramMaker.cc:46
VertexHistogramMaker::m_runHistoBXProfile
const bool m_runHistoBXProfile
Definition: VertexHistogramMaker.h:47
std
Definition: JetResolutionObject.h:76
VertexHistogramMaker::m_haveweightvsvtxzchk
TProfile * m_haveweightvsvtxzchk
Definition: VertexHistogramMaker.h:70
VertexHistogramMaker::m_weightThreshold
const double m_weightThreshold
Definition: VertexHistogramMaker.h:43
VertexHistogramMaker::m_hvtxxvsbxrun
TProfile ** m_hvtxxvsbxrun
Definition: VertexHistogramMaker.h:85
VertexHistogramMaker::m_hvtxz
TH1F * m_hvtxz
Definition: VertexHistogramMaker.h:74
VertexHistogramMaker::m_hvtxxvsbx2drun
TH2F ** m_hvtxxvsbx2drun
Definition: VertexHistogramMaker.h:92
VertexHistogramMaker::m_maxLS
const unsigned int m_maxLS
Definition: VertexHistogramMaker.h:42
ConsumesCollector.h
VertexHistogramMaker::m_hvtxzvsbx2drun
TH2F ** m_hvtxzvsbx2drun
Definition: VertexHistogramMaker.h:94
VertexHistogramMaker::m_hsqsumptsqheavy
TH1F * m_hsqsumptsqheavy
Definition: VertexHistogramMaker.h:62
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
VertexHistogramMaker::m_trueOnly
const bool m_trueOnly
Definition: VertexHistogramMaker.h:44
edm::Event
Definition: Event.h:73
VertexHistogramMaker::m_hntruevtxvslumi
TProfile * m_hntruevtxvslumi
Definition: VertexHistogramMaker.h:58
VertexHistogramMaker::book
void book(const std::string dirname="")
Definition: VertexHistogramMaker.cc:48
VertexHistogramMaker::VertexHistogramMaker
VertexHistogramMaker(edm::ConsumesCollector &&iC)
Definition: VertexHistogramMaker.cc:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
VertexHistogramMaker.h
weight
Definition: weight.py:1
RunHistogramManager::makeTProfile
TProfile ** makeTProfile(const char *name, const char *title, const unsigned int nbinx, const double xmin, const double xmax)
Definition: RunHistogramManager.cc:52
pwdgSkimBPark_cfi.vertices
vertices
Definition: pwdgSkimBPark_cfi.py:7
VertexHistogramMaker::m_runHistoBXProfile2D
const bool m_runHistoBXProfile2D
Definition: VertexHistogramMaker.h:48
VertexHistogramMaker::m_hntruevtxvslumi2D
TH2D * m_hntruevtxvslumi2D
Definition: VertexHistogramMaker.h:59