CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EDMtoMEConverter.cc
Go to the documentation of this file.
1 
10 #include <cassert>
11 
13 
14 using namespace lat;
15 
17  verbosity(0), frequency(0)
18 {
19  std::string MsgLoggerCat = "EDMtoMEConverter_EDMtoMEConverter";
20 
21  // get information from parameter set
22  name = iPSet.getUntrackedParameter<std::string>("Name");
23  verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
24  frequency = iPSet.getUntrackedParameter<int>("Frequency");
25 
26  convertOnEndLumi = iPSet.getUntrackedParameter<bool>("convertOnEndLumi",true);
27  convertOnEndRun = iPSet.getUntrackedParameter<bool>("convertOnEndRun",true);
28 
29  // use value of first digit to determine default output level (inclusive)
30  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
31  verbosity %= 10;
32 
33  // get dqm info
34  dbe = 0;
36 
37  // print out Parameter Set information being used
38  if (verbosity >= 0) {
39  edm::LogInfo(MsgLoggerCat)
40  << "\n===============================\n"
41  << "Initialized as EDAnalyzer with parameter values:\n"
42  << " Name = " << name << "\n"
43  << " Verbosity = " << verbosity << "\n"
44  << " Frequency = " << frequency << "\n"
45  << "===============================\n";
46  }
47 
48  classtypes.clear();
49  classtypes.push_back("TH1F");
50  classtypes.push_back("TH1S");
51  classtypes.push_back("TH1D");
52  classtypes.push_back("TH2F");
53  classtypes.push_back("TH2S");
54  classtypes.push_back("TH2D");
55  classtypes.push_back("TH3F");
56  classtypes.push_back("TProfile");
57  classtypes.push_back("TProfile2D");
58  classtypes.push_back("Double");
59  classtypes.push_back("Int");
60  classtypes.push_back("Int64");
61  classtypes.push_back("String");
62 
63  iCountf = 0;
64  iCount.clear();
65 
66  assert(sizeof(int64_t) == sizeof(long long));
67 
68 } // end constructor
69 
71 
73 {
74 }
75 
77 {
78  std::string MsgLoggerCat = "EDMtoMEConverter_endJob";
79  if (verbosity >= 0)
80  edm::LogInfo(MsgLoggerCat)
81  << "Terminating having processed " << iCount.size() << " runs across "
82  << iCountf << " files.";
83  return;
84 }
85 
87 {
88  ++iCountf;
89  return;
90 }
91 
92 void EDMtoMEConverter::beginRun(const edm::Run& iRun, const edm::EventSetup& iSetup)
93 {
94  std::string MsgLoggerCat = "EDMtoMEConverter_beginRun";
95 
96  int nrun = iRun.run();
97 
98  // keep track of number of unique runs processed
99  ++iCount[nrun];
100 
101  if (verbosity > 0) {
102  edm::LogInfo(MsgLoggerCat)
103  << "Processing run " << nrun << " (" << iCount.size() << " runs total)";
104  } else if (verbosity == 0) {
105  if (nrun%frequency == 0 || iCount.size() == 1) {
106  edm::LogInfo(MsgLoggerCat)
107  << "Processing run " << nrun << " (" << iCount.size() << " runs total)";
108  }
109  }
110 
111 }
112 
113 void EDMtoMEConverter::endRun(const edm::Run& iRun, const edm::EventSetup& iSetup)
114 {
115  if (convertOnEndRun) {
116  getData(iRun, true);
117  }
118 }
119 
121 {
122 }
123 
125 {
126  if (convertOnEndLumi) {
127  getData(iLumi, false);
128  }
129 }
130 
132 {
133 }
134 
135 template <class T>
136 void
137 EDMtoMEConverter::getData(T& iGetFrom, bool iEndRun)
138 {
139  std::string MsgLoggerCat = "EDMtoMEConverter_getData";
140 
141  if (verbosity >= 0)
142  edm::LogInfo (MsgLoggerCat) << "\nRestoring MonitorElements.";
143 
144  for (unsigned int ii = 0; ii < classtypes.size(); ++ii) {
145 
146  if (classtypes[ii] == "TH1F") {
147  edm::Handle<MEtoEDM<TH1F> > metoedm;
148  iGetFrom.getByType(metoedm);
149 
150  if (!metoedm.isValid()) {
151  //edm::LogWarning(MsgLoggerCat)
152  // << "MEtoEDM<TH1F> doesn't exist in run";
153  continue;
154  }
155 
156  std::vector<MEtoEDM<TH1F>::MEtoEDMObject> metoedmobject =
157  metoedm->getMEtoEdmObject();
158 
159  me1.resize(metoedmobject.size());
160 
161  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
162 
163  me1[i] = 0;
164 
165  // get full path of monitor element
166  std::string pathname = metoedmobject[i].name;
167  if (verbosity > 0) std::cout << pathname << std::endl;
168 
169  std::string dir;
170 
171  // deconstruct path from fullpath
172  StringList fulldir = StringOps::split(pathname,"/");
173 
174  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
175  dir += fulldir[j];
176  if (j != fulldir.size() - 2) dir += "/";
177  }
178 
179  // define new monitor element
180  if (dbe) {
181  me1[i] = dbe->get(dir+"/"+metoedmobject[i].object.GetName());
182  if (me1[i] && me1[i]->getTH1F() && me1[i]->getTH1F()->TestBit(TH1::kCanRebin) == true) {
183  TList list;
184  list.Add(&metoedmobject[i].object);
185  if (me1[i]->getTH1F()->Merge(&list) == -1)
186  std::cout << "ERROR EDMtoMEConverter::getData(): merge failed for '"
187  << metoedmobject[i].object.GetName() << "'" << std::endl;
188  } else {
189  dbe->setCurrentFolder(dir);
190  me1[i] = dbe->book1D(metoedmobject[i].object.GetName(),
191  &metoedmobject[i].object);
192  }
193  if (!iEndRun) me1[i]->setLumiFlag();
194  } // end define new monitor elements
195 
196  // attach taglist
197  TagList tags = metoedmobject[i].tags;
198 
199  for (unsigned int j = 0; j < tags.size(); ++j) {
200  dbe->tag(me1[i]->getFullname(),tags[j]);
201  }
202  } // end loop thorugh metoedmobject
203  } // end TH1F creation
204 
205  if (classtypes[ii] == "TH1S") {
206  edm::Handle<MEtoEDM<TH1S> > metoedm;
207  iGetFrom.getByType(metoedm);
208 
209  if (!metoedm.isValid()) {
210  //edm::LogWarning(MsgLoggerCat)
211  // << "MEtoEDM<TH1S> doesn't exist in run";
212  continue;
213  }
214 
215  std::vector<MEtoEDM<TH1S>::MEtoEDMObject> metoedmobject =
216  metoedm->getMEtoEdmObject();
217 
218  me1.resize(metoedmobject.size());
219 
220  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
221 
222  me1[i] = 0;
223 
224  // get full path of monitor element
225  std::string pathname = metoedmobject[i].name;
226  if (verbosity > 0) std::cout << pathname << std::endl;
227 
228  std::string dir;
229 
230  // deconstruct path from fullpath
231  StringList fulldir = StringOps::split(pathname,"/");
232 
233  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
234  dir += fulldir[j];
235  if (j != fulldir.size() - 2) dir += "/";
236  }
237 
238  // define new monitor element
239  if (dbe) {
240  me1[i] = dbe->get(dir+"/"+metoedmobject[i].object.GetName());
241  if (me1[i] && me1[i]->getTH1S() && me1[i]->getTH1S()->TestBit(TH1::kCanRebin) == true) {
242  TList list;
243  list.Add(&metoedmobject[i].object);
244  if (me1[i]->getTH1S()->Merge(&list) == -1)
245  std::cout << "ERROR EDMtoMEConverter::getData(): merge failed for '"
246  << metoedmobject[i].object.GetName() << "'" << std::endl;
247  } else {
248  dbe->setCurrentFolder(dir);
249  me1[i] = dbe->book1S(metoedmobject[i].object.GetName(),
250  &metoedmobject[i].object);
251  }
252  if (!iEndRun) me1[i]->setLumiFlag();
253  } // end define new monitor elements
254 
255  // attach taglist
256  TagList tags = metoedmobject[i].tags;
257 
258  for (unsigned int j = 0; j < tags.size(); ++j) {
259  dbe->tag(me1[i]->getFullname(),tags[j]);
260  }
261  } // end loop thorugh metoedmobject
262  } // end TH1S creation
263 
264  if (classtypes[ii] == "TH1D") {
265  edm::Handle<MEtoEDM<TH1D> > metoedm;
266  iGetFrom.getByType(metoedm);
267 
268  if (!metoedm.isValid()) {
269  //edm::LogWarning(MsgLoggerCat)
270  // << "MEtoEDM<TH1D> doesn't exist in run";
271  continue;
272  }
273 
274  std::vector<MEtoEDM<TH1D>::MEtoEDMObject> metoedmobject =
275  metoedm->getMEtoEdmObject();
276 
277  me1.resize(metoedmobject.size());
278 
279  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
280 
281  me1[i] = 0;
282 
283  // get full path of monitor element
284  std::string pathname = metoedmobject[i].name;
285  if (verbosity > 0) std::cout << pathname << std::endl;
286 
287  std::string dir;
288 
289  // deconstruct path from fullpath
290  StringList fulldir = StringOps::split(pathname,"/");
291 
292  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
293  dir += fulldir[j];
294  if (j != fulldir.size() - 2) dir += "/";
295  }
296 
297  // define new monitor element
298  if (dbe) {
299  me1[i] = dbe->get(dir+"/"+metoedmobject[i].object.GetName());
300  if (me1[i] && me1[i]->getTH1D() && me1[i]->getTH1D()->TestBit(TH1::kCanRebin) == true) {
301  TList list;
302  list.Add(&metoedmobject[i].object);
303  if (me1[i]->getTH1D()->Merge(&list) == -1)
304  std::cout << "ERROR EDMtoMEConverter::getData(): merge failed for '"
305  << metoedmobject[i].object.GetName() << "'" << std::endl;
306  } else {
307  dbe->setCurrentFolder(dir);
308  me1[i] = dbe->book1DD(metoedmobject[i].object.GetName(),
309  &metoedmobject[i].object);
310  }
311  if (!iEndRun) me1[i]->setLumiFlag();
312  } // end define new monitor elements
313 
314  // attach taglist
315  TagList tags = metoedmobject[i].tags;
316 
317  for (unsigned int j = 0; j < tags.size(); ++j) {
318  dbe->tag(me1[i]->getFullname(),tags[j]);
319  }
320  } // end loop thorugh metoedmobject
321  } // end TH1D creation
322 
323  if (classtypes[ii] == "TH2F") {
324  edm::Handle<MEtoEDM<TH2F> > metoedm;
325  iGetFrom.getByType(metoedm);
326 
327  if (!metoedm.isValid()) {
328  //edm::LogWarning(MsgLoggerCat)
329  // << "MEtoEDM<TH2F> doesn't exist in run";
330  continue;
331  }
332 
333  std::vector<MEtoEDM<TH2F>::MEtoEDMObject> metoedmobject =
334  metoedm->getMEtoEdmObject();
335 
336  me2.resize(metoedmobject.size());
337 
338  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
339 
340  me2[i] = 0;
341 
342  // get full path of monitor element
343  std::string pathname = metoedmobject[i].name;
344  if (verbosity > 0) std::cout << pathname << std::endl;
345 
346  std::string dir;
347 
348  // deconstruct path from fullpath
349  StringList fulldir = StringOps::split(pathname,"/");
350 
351  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
352  dir += fulldir[j];
353  if (j != fulldir.size() - 2) dir += "/";
354  }
355 
356  // define new monitor element
357  if (dbe) {
358  me2[i] = dbe->get(dir+"/"+metoedmobject[i].object.GetName());
359  if (me2[i] && me2[i]->getTH2F() && me2[i]->getTH2F()->TestBit(TH1::kCanRebin) == true) {
360  TList list;
361  list.Add(&metoedmobject[i].object);
362  if (me2[i]->getTH2F()->Merge(&list) == -1)
363  std::cout << "ERROR EDMtoMEConverter::getData(): merge failed for '"
364  << metoedmobject[i].object.GetName() << "'" << std::endl;
365  } else {
366  dbe->setCurrentFolder(dir);
367  me2[i] = dbe->book2D(metoedmobject[i].object.GetName(),
368  &metoedmobject[i].object);
369  }
370  if (!iEndRun) me2[i]->setLumiFlag();
371  } // end define new monitor elements
372 
373  // attach taglist
374  TagList tags = metoedmobject[i].tags;
375 
376  for (unsigned int j = 0; j < tags.size(); ++j) {
377  dbe->tag(me2[i]->getFullname(),tags[j]);
378  }
379  } // end loop thorugh metoedmobject
380  } // end TH2F creation
381 
382  if (classtypes[ii] == "TH2S") {
383  edm::Handle<MEtoEDM<TH2S> > metoedm;
384  iGetFrom.getByType(metoedm);
385 
386  if (!metoedm.isValid()) {
387  //edm::LogWarning(MsgLoggerCat)
388  // << "MEtoEDM<TH2S> doesn't exist in run";
389  continue;
390  }
391 
392  std::vector<MEtoEDM<TH2S>::MEtoEDMObject> metoedmobject =
393  metoedm->getMEtoEdmObject();
394 
395  me2.resize(metoedmobject.size());
396 
397  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
398 
399  me2[i] = 0;
400 
401  // get full path of monitor element
402  std::string pathname = metoedmobject[i].name;
403  if (verbosity > 0) std::cout << pathname << std::endl;
404 
405  std::string dir;
406 
407  // deconstruct path from fullpath
408  StringList fulldir = StringOps::split(pathname,"/");
409 
410  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
411  dir += fulldir[j];
412  if (j != fulldir.size() - 2) dir += "/";
413  }
414 
415  // define new monitor element
416  if (dbe) {
417  me2[i] = dbe->get(dir+"/"+metoedmobject[i].object.GetName());
418  if (me2[i] && me2[i]->getTH2S() && me2[i]->getTH2S()->TestBit(TH1::kCanRebin) == true) {
419  TList list;
420  list.Add(&metoedmobject[i].object);
421  if (me2[i]->getTH2S()->Merge(&list) == -1)
422  std::cout << "ERROR EDMtoMEConverter::getData(): merge failed for '"
423  << metoedmobject[i].object.GetName() << "'" << std::endl;
424  } else {
425  dbe->setCurrentFolder(dir);
426  me2[i] = dbe->book2S(metoedmobject[i].object.GetName(),
427  &metoedmobject[i].object);
428  }
429  if (!iEndRun) me2[i]->setLumiFlag();
430  } // end define new monitor elements
431 
432  // attach taglist
433  TagList tags = metoedmobject[i].tags;
434 
435  for (unsigned int j = 0; j < tags.size(); ++j) {
436  dbe->tag(me2[i]->getFullname(),tags[j]);
437  }
438  } // end loop thorugh metoedmobject
439  } // end TH2S creation
440 
441  if (classtypes[ii] == "TH2D") {
442  edm::Handle<MEtoEDM<TH2D> > metoedm;
443  iGetFrom.getByType(metoedm);
444 
445  if (!metoedm.isValid()) {
446  //edm::LogWarning(MsgLoggerCat)
447  // << "MEtoEDM<TH2D> doesn't exist in run";
448  continue;
449  }
450 
451  std::vector<MEtoEDM<TH2D>::MEtoEDMObject> metoedmobject =
452  metoedm->getMEtoEdmObject();
453 
454  me2.resize(metoedmobject.size());
455 
456  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
457 
458  me2[i] = 0;
459 
460  // get full path of monitor element
461  std::string pathname = metoedmobject[i].name;
462  if (verbosity > 0) std::cout << pathname << std::endl;
463 
464  std::string dir;
465 
466  // deconstruct path from fullpath
467  StringList fulldir = StringOps::split(pathname,"/");
468 
469  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
470  dir += fulldir[j];
471  if (j != fulldir.size() - 2) dir += "/";
472  }
473 
474  // define new monitor element
475  if (dbe) {
476  me2[i] = dbe->get(dir+"/"+metoedmobject[i].object.GetName());
477  if (me2[i] && me2[i]->getTH2D() && me2[i]->getTH2D()->TestBit(TH1::kCanRebin) == true) {
478  TList list;
479  list.Add(&metoedmobject[i].object);
480  if (me2[i]->getTH2D()->Merge(&list) == -1)
481  std::cout << "ERROR EDMtoMEConverter::getData(): merge failed for '"
482  << metoedmobject[i].object.GetName() << "'" << std::endl;
483  } else {
484  dbe->setCurrentFolder(dir);
485  me2[i] = dbe->book2DD(metoedmobject[i].object.GetName(),
486  &metoedmobject[i].object);
487  }
488  if (!iEndRun) me2[i]->setLumiFlag();
489  } // end define new monitor elements
490 
491  // attach taglist
492  TagList tags = metoedmobject[i].tags;
493 
494  for (unsigned int j = 0; j < tags.size(); ++j) {
495  dbe->tag(me2[i]->getFullname(),tags[j]);
496  }
497  } // end loop thorugh metoedmobject
498  } // end TH2D creation
499 
500  if (classtypes[ii] == "TH3F") {
501  edm::Handle<MEtoEDM<TH3F> > metoedm;
502  iGetFrom.getByType(metoedm);
503 
504  if (!metoedm.isValid()) {
505  //edm::LogWarning(MsgLoggerCat)
506  // << "MEtoEDM<TH3F> doesn't exist in run";
507  continue;
508  }
509 
510  std::vector<MEtoEDM<TH3F>::MEtoEDMObject> metoedmobject =
511  metoedm->getMEtoEdmObject();
512 
513  me3.resize(metoedmobject.size());
514 
515  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
516 
517  me3[i] = 0;
518 
519  // get full path of monitor element
520  std::string pathname = metoedmobject[i].name;
521  if (verbosity > 0) std::cout << pathname << std::endl;
522 
523  std::string dir;
524 
525  // deconstruct path from fullpath
526  StringList fulldir = StringOps::split(pathname,"/");
527 
528  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
529  dir += fulldir[j];
530  if (j != fulldir.size() - 2) dir += "/";
531  }
532 
533  // define new monitor element
534  if (dbe) {
535  me3[i] = dbe->get(dir+"/"+metoedmobject[i].object.GetName());
536  if (me3[i] && me3[i]->getTH3F() && me3[i]->getTH3F()->TestBit(TH1::kCanRebin) == true) {
537  TList list;
538  list.Add(&metoedmobject[i].object);
539  if (me3[i]->getTH3F()->Merge(&list) == -1)
540  std::cout << "ERROR EDMtoMEConverter::getData(): merge failed for '"
541  << metoedmobject[i].object.GetName() << "'" << std::endl;
542  } else {
543  dbe->setCurrentFolder(dir);
544  me3[i] = dbe->book3D(metoedmobject[i].object.GetName(),
545  &metoedmobject[i].object);
546  }
547  if (!iEndRun) me3[i]->setLumiFlag();
548  } // end define new monitor elements
549 
550  // attach taglist
551  TagList tags = metoedmobject[i].tags;
552 
553  for (unsigned int j = 0; j < tags.size(); ++j) {
554  dbe->tag(me3[i]->getFullname(),tags[j]);
555  }
556  } // end loop thorugh metoedmobject
557  } // end TH3F creation
558 
559  if (classtypes[ii] == "TProfile") {
561  iGetFrom.getByType(metoedm);
562 
563  if (!metoedm.isValid()) {
564  //edm::LogWarning(MsgLoggerCat)
565  // << "MEtoEDM<TProfile> doesn't exist in run";
566  continue;
567  }
568 
569  std::vector<MEtoEDM<TProfile>::MEtoEDMObject> metoedmobject =
570  metoedm->getMEtoEdmObject();
571 
572  me4.resize(metoedmobject.size());
573 
574  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
575 
576  me4[i] = 0;
577 
578  // get full path of monitor element
579  std::string pathname = metoedmobject[i].name;
580  if (verbosity > 0) std::cout << pathname << std::endl;
581 
582  std::string dir;
583 
584  // deconstruct path from fullpath
585  StringList fulldir = StringOps::split(pathname,"/");
586 
587  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
588  dir += fulldir[j];
589  if (j != fulldir.size() - 2) dir += "/";
590  }
591 
592  std::string name = metoedmobject[i].object.GetName();
593  // define new monitor element
594  if (dbe) {
595  me4[i] = dbe->get(dir+"/"+metoedmobject[i].object.GetName());
596  if (me4[i] && me4[i]->getTProfile() && me4[i]->getTProfile()->TestBit(TH1::kCanRebin) == true) {
597  TList list;
598  list.Add(&metoedmobject[i].object);
599  if (me4[i]->getTProfile()->Merge(&list) == -1)
600  std::cout << "ERROR EDMtoMEConverter::getData(): merge failed for '"
601  << metoedmobject[i].object.GetName() << "'" << std::endl;
602  } else {
603  dbe->setCurrentFolder(dir);
604  me4[i] = dbe->bookProfile(metoedmobject[i].object.GetName(),
605  &metoedmobject[i].object);
606  }
607  if (!iEndRun) me4[i]->setLumiFlag();
608  } // end define new monitor elements
609 
610  // attach taglist
611  TagList tags = metoedmobject[i].tags;
612 
613  for (unsigned int j = 0; j < tags.size(); ++j) {
614  dbe->tag(me4[i]->getFullname(),tags[j]);
615  }
616  } // end loop thorugh metoedmobject
617  } // end TProfile creation
618 
619  if (classtypes[ii] == "TProfile2D") {
621  iGetFrom.getByType(metoedm);
622 
623  if (!metoedm.isValid()) {
624  //edm::LogWarning(MsgLoggerCat)
625  // << "MEtoEDM<TProfile2D> doesn't exist in run";
626  continue;
627  }
628 
629  std::vector<MEtoEDM<TProfile2D>::MEtoEDMObject> metoedmobject =
630  metoedm->getMEtoEdmObject();
631 
632  me5.resize(metoedmobject.size());
633 
634  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
635 
636  me5[i] = 0;
637 
638  // get full path of monitor element
639  std::string pathname = metoedmobject[i].name;
640  if (verbosity > 0) std::cout << pathname << std::endl;
641 
642  std::string dir;
643 
644  // deconstruct path from fullpath
645  StringList fulldir = StringOps::split(pathname,"/");
646 
647  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
648  dir += fulldir[j];
649  if (j != fulldir.size() - 2) dir += "/";
650  }
651 
652  // define new monitor element
653  if (dbe) {
654  me5[i] = dbe->get(dir+"/"+metoedmobject[i].object.GetName());
655  if (me5[i] && me5[i]->getTProfile2D() && me5[i]->getTProfile2D()->TestBit(TH1::kCanRebin) == true) {
656  TList list;
657  list.Add(&metoedmobject[i].object);
658  if (me5[i]->getTProfile2D()->Merge(&list) == -1)
659  std::cout << "ERROR EDMtoMEConverter::getData(): merge failed for '"
660  << metoedmobject[i].object.GetName() << "'" << std::endl;
661  } else {
662  dbe->setCurrentFolder(dir);
663  me5[i] = dbe->bookProfile2D(metoedmobject[i].object.GetName(),
664  &metoedmobject[i].object);
665  }
666  if (!iEndRun) me5[i]->setLumiFlag();
667  } // end define new monitor elements
668 
669  // attach taglist
670  TagList tags = metoedmobject[i].tags;
671 
672  for (unsigned int j = 0; j < tags.size(); ++j) {
673  dbe->tag(me5[i]->getFullname(),tags[j]);
674  }
675  } // end loop thorugh metoedmobject
676  } // end TProfile2D creation
677 
678  if (classtypes[ii] == "Double") {
679  edm::Handle<MEtoEDM<double> > metoedm;
680  iGetFrom.getByType(metoedm);
681 
682  if (!metoedm.isValid()) {
683  //edm::LogWarning(MsgLoggerCat)
684  // << "MEtoEDM<double> doesn't exist in run";
685  continue;
686  }
687 
688  std::vector<MEtoEDM<double>::MEtoEDMObject> metoedmobject =
689  metoedm->getMEtoEdmObject();
690 
691  me6.resize(metoedmobject.size());
692 
693  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
694 
695  me6[i] = 0;
696 
697  // get full path of monitor element
698  std::string pathname = metoedmobject[i].name;
699  if (verbosity > 0) std::cout << pathname << std::endl;
700 
701  std::string dir;
702  std::string name;
703 
704  // deconstruct path from fullpath
705 
706  StringList fulldir = StringOps::split(pathname,"/");
707  name = *(fulldir.end() - 1);
708 
709  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
710  dir += fulldir[j];
711  if (j != fulldir.size() - 2) dir += "/";
712  }
713 
714  // define new monitor element
715  if (dbe) {
716  dbe->setCurrentFolder(dir);
717  me6[i] = dbe->bookFloat(name);
718  me6[i]->Fill(metoedmobject[i].object);
719  if (!iEndRun) me6[i]->setLumiFlag();
720  } // end define new monitor elements
721 
722  // attach taglist
723  TagList tags = metoedmobject[i].tags;
724 
725  for (unsigned int j = 0; j < tags.size(); ++j) {
726  dbe->tag(me6[i]->getFullname(),tags[j]);
727  }
728  } // end loop thorugh metoedmobject
729  } // end Float creation
730 
731  if (classtypes[ii] == "Int64") {
733  iGetFrom.getByType(metoedm);
734 
735  if (!metoedm.isValid()) {
736  //edm::LogWarning(MsgLoggerCat)
737  // << "MEtoEDM<long long> doesn't exist in run";
738  continue;
739  }
740 
741  std::vector<MEtoEDM<long long>::MEtoEDMObject> metoedmobject =
742  metoedm->getMEtoEdmObject();
743 
744  me7.resize(metoedmobject.size());
745 
746  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
747 
748  me7[i] = 0;
749 
750  // get full path of monitor element
751  std::string pathname = metoedmobject[i].name;
752  if (verbosity > 0) std::cout << pathname << std::endl;
753 
754  std::string dir;
755  std::string name;
756 
757  // deconstruct path from fullpath
758  StringList fulldir = StringOps::split(pathname,"/");
759  name = *(fulldir.end() - 1);
760 
761  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
762  dir += fulldir[j];
763  if (j != fulldir.size() - 2) dir += "/";
764  }
765 
766  // define new monitor element
767  if (dbe) {
768  dbe->setCurrentFolder(dir);
769  long long ival = 0;
770  if ( iEndRun ) {
771  if (name.find("processedEvents") != std::string::npos) {
772  if (MonitorElement* me = dbe->get(dir+"/"+name)) {
773  ival = me->getIntValue();
774  }
775  }
776  }
777  me7[i] = dbe->bookInt(name);
778  me7[i]->Fill(metoedmobject[i].object+ival);
779  if (!iEndRun) me7[i]->setLumiFlag();
780  } // end define new monitor elements
781 
782  // attach taglist
783  TagList tags = metoedmobject[i].tags;
784 
785  for (unsigned int j = 0; j < tags.size(); ++j) {
786  dbe->tag(me7[i]->getFullname(),tags[j]);
787  }
788  } // end loop thorugh metoedmobject
789  } // end Int creation
790 
791  if (classtypes[ii] == "Int") {
792  edm::Handle<MEtoEDM<int> > metoedm;
793  iGetFrom.getByType(metoedm);
794 
795  if (!metoedm.isValid()) {
796  //edm::LogWarning(MsgLoggerCat)
797  // << "MEtoEDM<int> doesn't exist in run";
798  continue;
799  }
800 
801  std::vector<MEtoEDM<int>::MEtoEDMObject> metoedmobject =
802  metoedm->getMEtoEdmObject();
803 
804  me7.resize(metoedmobject.size());
805 
806  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
807 
808  me7[i] = 0;
809 
810  // get full path of monitor element
811  std::string pathname = metoedmobject[i].name;
812  if (verbosity > 0) std::cout << pathname << std::endl;
813 
814  std::string dir;
815  std::string name;
816 
817  // deconstruct path from fullpath
818  StringList fulldir = StringOps::split(pathname,"/");
819  name = *(fulldir.end() - 1);
820 
821  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
822  dir += fulldir[j];
823  if (j != fulldir.size() - 2) dir += "/";
824  }
825 
826  // define new monitor element
827  if (dbe) {
828  dbe->setCurrentFolder(dir);
829  int ival = 0;
830  if ( iEndRun ) {
831  if (name.find("processedEvents") != std::string::npos) {
832  if (MonitorElement* me = dbe->get(dir+"/"+name)) {
833  ival = me->getIntValue();
834  }
835  }
836  }
837  me7[i] = dbe->bookInt(name);
838  me7[i]->Fill(metoedmobject[i].object+ival);
839  if (!iEndRun) me7[i]->setLumiFlag();
840  } // end define new monitor elements
841 
842  // attach taglist
843  TagList tags = metoedmobject[i].tags;
844 
845  for (unsigned int j = 0; j < tags.size(); ++j) {
846  dbe->tag(me7[i]->getFullname(),tags[j]);
847  }
848  } // end loop thorugh metoedmobject
849  } // end Int creation
850 
851  if (classtypes[ii] == "String") {
853  iGetFrom.getByType(metoedm);
854 
855  if (!metoedm.isValid()) {
856  //edm::LogWarning(MsgLoggerCat)
857  // << "MEtoEDM<TString> doesn't exist in run";
858  continue;
859  }
860 
861  std::vector<MEtoEDM<TString>::MEtoEDMObject> metoedmobject =
862  metoedm->getMEtoEdmObject();
863 
864  me8.resize(metoedmobject.size());
865 
866  for (unsigned int i = 0; i < metoedmobject.size(); ++i) {
867 
868  me8[i] = 0;
869 
870  // get full path of monitor element
871  std::string pathname = metoedmobject[i].name;
872  if (verbosity > 0) std::cout << pathname << std::endl;
873 
874  std::string dir;
875  std::string name;
876 
877  // deconstruct path from fullpath
878  StringList fulldir = StringOps::split(pathname,"/");
879  name = *(fulldir.end() - 1);
880 
881  for (unsigned j = 0; j < fulldir.size() - 1; ++j) {
882  dir += fulldir[j];
883  if (j != fulldir.size() - 2) dir += "/";
884  }
885 
886  // define new monitor element
887  if (dbe) {
888  dbe->setCurrentFolder(dir);
889  std::string scont = metoedmobject[i].object.Data();
890  me8[i] = dbe->bookString(name,scont);
891  if (!iEndRun) me8[i]->setLumiFlag();
892  } // end define new monitor elements
893 
894  // attach taglist
895  TagList tags = metoedmobject[i].tags;
896 
897  for (unsigned int j = 0; j < tags.size(); ++j) {
898  dbe->tag(me8[i]->getFullname(),tags[j]);
899  }
900  } // end loop thorugh metoedmobject
901  } // end String creation
902  }
903 
904  // verify tags stored properly
905  if (verbosity > 0) {
906  std::vector<std::string> stags;
907  dbe->getAllTags(stags);
908  for (unsigned int i = 0; i < stags.size(); ++i) {
909  std::cout << "Tags: " << stags[i] << std::endl;
910  }
911  }
912 
913 }
914 
virtual void analyze(const edm::Event &, const edm::EventSetup &)
std::vector< uint32_t > TagList
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
MonitorElement * book2S(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2S histogram.
Definition: DQMStore.cc:664
TProfile * getTProfile(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
RunNumber_t run() const
Definition: RunBase.h:44
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:514
MonitorElement * book3D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ)
Book 3D histogram.
Definition: DQMStore.cc:776
MonitorElement * book2DD(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D double histogram.
Definition: DQMStore.cc:686
EDMtoMEConverter(const edm::ParameterSet &)
std::vector< MonitorElement * > me6
virtual void endRun(const edm::Run &, const edm::EventSetup &)
MonitorElement * book1DD(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1S histogram.
Definition: DQMStore.cc:546
std::vector< std::string > classtypes
MonitorElement * bookFloat(const char *name)
Book float.
Definition: DQMStore.cc:451
void tag(MonitorElement *me, unsigned int myTag)
Definition: DQMStore.cc:1151
int iEvent
Definition: GenABIO.cc:243
virtual void beginRun(const edm::Run &, const edm::EventSetup &)
std::vector< MonitorElement * > me8
MonitorElement * bookString(const char *name, const char *value)
Book string.
Definition: DQMStore.cc:480
TH3F * getTH3F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
virtual void endLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
virtual void endJob()
std::vector< MonitorElement * > me7
virtual void beginJob()
std::vector< MonitorElement * > me1
std::vector< MonitorElement * > me4
std::vector< MonitorElement * > me5
int j
Definition: DBlmapReader.cc:9
TH1F * getTH1F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
TProfile2D * getTProfile2D(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
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:828
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1265
bool isValid() const
Definition: HandleBase.h:76
const int verbosity
tuple tags
Definition: o2o.py:248
void getAllTags(std::vector< std::string > &into) const
Definition: DQMStore.cc:1416
virtual void respondToOpenInputFile(const edm::FileBlock &)
virtual void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
std::vector< MonitorElement * > me2
virtual ~EDMtoMEConverter()
TH2F * getTH2F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
tuple cout
Definition: gather_cfg.py:41
dbl *** dir
Definition: mlp_gen.cc:35
MonitorElement * bookInt(const char *name)
Book int.
Definition: DQMStore.cc:421
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:642
std::vector< MonitorElement * > me3
long double T
unsigned int iCountf
double split
Definition: MVATrainer.cc:139
MonitorElement * book1S(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1S histogram.
Definition: DQMStore.cc:530
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
Definition: Run.h:32
std::map< int, int > iCount
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
void getData(T &iGetFrom, bool iEndRun)
MonitorElement * bookProfile2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ, const char *option="s")
Definition: DQMStore.cc:972