CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Tracer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: Services
4 // Class : Tracer
5 //
6 // Implementation:
7 // <Notes on implementation>
8 //
9 // Original Author: Chris Jones
10 // Created: Thu Sep 8 14:17:58 EDT 2005
11 //
12 
24 
30 
39 
40 #include <iostream>
41 #include <vector>
42 
43 using namespace edm::service;
44 
45 namespace {
46 
47  class TimeStamper {
48  public:
49  TimeStamper(bool enable) :
50  enabled_(enable)
51  { }
52 
53  friend
54  std::ostream & operator<<(std::ostream & out, TimeStamper const & timestamp) {
55  if (timestamp.enabled_)
56  out << std::setprecision(2) << edm::TimeOfDay() << " ";
57  return out;
58  }
59 
60  private:
61  bool enabled_;
62  };
63 
64 }
65 
67  indention_(iPS.getUntrackedParameter<std::string>("indention")),
68  dumpContextForLabels_(),
69  dumpNonModuleContext_(iPS.getUntrackedParameter<bool>("dumpNonModuleContext")),
70  dumpPathsAndConsumes_(iPS.getUntrackedParameter<bool>("dumpPathsAndConsumes")),
71  printTimestamps_(iPS.getUntrackedParameter<bool>("printTimestamps"))
72 {
73  for (std::string & label: iPS.getUntrackedParameter<std::vector<std::string>>("dumpContextForLabels"))
74  dumpContextForLabels_.insert(std::move(label));
75 
76  iRegistry.watchPreallocate(this, &Tracer::preallocate);
77 
78  iRegistry.watchPreBeginJob(this, &Tracer::preBeginJob);
79  iRegistry.watchPostBeginJob(this, &Tracer::postBeginJob);
80  iRegistry.watchPostEndJob(this, &Tracer::postEndJob);
81 
84 
85  iRegistry.watchPreSourceLumi(this, &Tracer::preSourceLumi);
87 
88  iRegistry.watchPreSourceRun(this, &Tracer::preSourceRun);
89  iRegistry.watchPostSourceRun(this, &Tracer::postSourceRun);
90 
91  iRegistry.watchPreOpenFile(this, &Tracer::preOpenFile);
92  iRegistry.watchPostOpenFile(this, &Tracer::postOpenFile);
93 
94  iRegistry.watchPreCloseFile(this, &Tracer::preCloseFile);
95  iRegistry.watchPostCloseFile(this, &Tracer::postCloseFile);
96 
99 
102 
105 
108 
111 
114 
117 
120 
123 
126 
127  iRegistry.watchPreEvent(this, &Tracer::preEvent);
128  iRegistry.watchPostEvent(this, &Tracer::postEvent);
129 
130  iRegistry.watchPrePathEvent(this, &Tracer::prePathEvent);
131  iRegistry.watchPostPathEvent(this, &Tracer::postPathEvent);
132 
135 
138 
141 
146 
151 
156 
161 
166 
169 
171  LogAbsolute out("Tracer");
172  out << TimeStamper(printTimestamps_);
173  out << indention_ << indention_ << " early termination before processing transition";
174  });
175  iRegistry.preStreamEarlyTerminationSignal_.connect([this](edm::StreamContext const& iContext, edm::TerminationOrigin iOrigin) {
176  LogAbsolute out("Tracer");
177  out << TimeStamper(printTimestamps_);
178  if(iContext.eventID().luminosityBlock() ==0) {
179  out << indention_ << indention_ << " early termination of run: stream = " << iContext.streamID()
180  <<" run = " << iContext.eventID().run();
181  }else {
182  if(iContext.eventID().event() == 0) {
183  out << indention_ << indention_ << " early termination of stream lumi: stream = " << iContext.streamID()
184  <<" run = " << iContext.eventID().run()
185  << " lumi = " << iContext.eventID().luminosityBlock() ;
186  } else {
187  out << indention_ << indention_ << " early termination of event: stream = " << iContext.streamID()
188  <<" run = " << iContext.eventID().run()
189  << " lumi = " << iContext.eventID().luminosityBlock()
190  << " event = "<< iContext.eventID().event();
191 
192  }
193  }
194  out<< " : time = " << iContext.timestamp().value();
195 
196  });
197  iRegistry.preGlobalEarlyTerminationSignal_.connect([this](edm::GlobalContext const& iContext, edm::TerminationOrigin iOrigin) {
198  LogAbsolute out("Tracer");
199  out << TimeStamper(printTimestamps_);
200  if(iContext.luminosityBlockID().value() ==0) {
201  out << indention_ << indention_ << " early termination of global run " << iContext.luminosityBlockID().run();
202  }else {
203  out << indention_ << indention_ << " early termination of global lumi run = " << iContext.luminosityBlockID().run()
204  << " lumi = " << iContext.luminosityBlockID().luminosityBlock() ;
205 
206  }
207  out<< " : time = " << iContext.timestamp().value();
208  });
209 }
210 
211 void
214  desc.addUntracked<std::string>("indention", "++")->setComment("Prefix characters for output. The characters are repeated to form the indentation.");
215  desc.addUntracked<std::vector<std::string>>("dumpContextForLabels", std::vector<std::string>{})->setComment("Prints context information to cout for the module transitions associated with these modules' labels");
216  desc.addUntracked<bool>("dumpNonModuleContext", false)->setComment("Prints context information to cout for the transitions not associated with any module label");
217  desc.addUntracked<bool>("dumpPathsAndConsumes", false)->setComment("Prints information to cout about paths, endpaths, products consumed by modules and the dependencies between modules created by the products they consume");
218  desc.addUntracked<bool>("printTimestamps", false)->setComment("Prints a time stamp for every transition");
219  descriptions.add("Tracer", desc);
220  descriptions.setComment("This service prints each phase the framework is processing, e.g. constructing a module,running a module, etc.");
221 }
222 
223 void
225  LogAbsolute("Tracer") << TimeStamper(printTimestamps_) << indention_ << " preallocate: " << bounds.maxNumberOfConcurrentRuns() << " concurrent runs, "
226  << bounds.maxNumberOfConcurrentLuminosityBlocks() << " concurrent luminosity sections, "
227  << bounds.maxNumberOfStreams() << " streams";
228 }
229 
230 void
232  LogAbsolute out("Tracer");
233  out << TimeStamper(printTimestamps_) << indention_ << " starting: begin job";
235  out << "\n" << "Process name = " << pc.processName() << "\n";
236  out << "paths:\n";
237  std::vector<std::string> const& paths = pathsAndConsumes.paths();
238  for(auto const& path : paths) {
239  out << " " << path << "\n";
240  }
241  out << "end paths:\n";
242  std::vector<std::string> const& endpaths = pathsAndConsumes.endPaths();
243  for(auto const& endpath : endpaths) {
244  out << " " << endpath << "\n";
245  }
246  for(unsigned int j = 0; j < paths.size(); ++j) {
247  std::vector<ModuleDescription const*> const& modulesOnPath = pathsAndConsumes.modulesOnPath(j);
248  out << "modules on path " << paths.at(j) << ":\n";
249  for(auto const& desc : modulesOnPath) {
250  out << " " << desc->moduleLabel() << "\n";
251  }
252  }
253  for(unsigned int j = 0; j < endpaths.size(); ++j) {
254  std::vector<ModuleDescription const*> const& modulesOnEndPath = pathsAndConsumes.modulesOnEndPath(j);
255  out << "modules on end path " << endpaths.at(j) << ":\n";
256  for(auto const& desc : modulesOnEndPath) {
257  out << " " << desc->moduleLabel() << "\n";
258  }
259  }
260  std::vector<ModuleDescription const*> const& allModules = pathsAndConsumes.allModules();
261  out << "All modules and modules in the current process whose products they consume:\n";
262  out << "(This does not include modules from previous processes or the source)\n";
263  for(auto const& module : allModules) {
264  out << " " << module->moduleName() << "/\'" << module->moduleLabel() << "\'";
265  unsigned int moduleID = module->id();
266  if(pathsAndConsumes.moduleDescription(moduleID) != module) {
267  throw cms::Exception("TestFailure") << "Tracer::preBeginJob, moduleDescription returns incorrect value";
268  }
269  std::vector<ModuleDescription const*> const& modulesWhoseProductsAreConsumedBy =
270  pathsAndConsumes.modulesWhoseProductsAreConsumedBy(moduleID);
271  if(!modulesWhoseProductsAreConsumedBy.empty()) {
272  out << " consumes products from these modules:\n";
273  for(auto const& producingModule : modulesWhoseProductsAreConsumedBy) {
274  out << " " << producingModule->moduleName() << "/\'" << producingModule->moduleLabel() << "\'\n";
275  }
276  } else {
277  out << "\n";
278  }
279  }
280  out << "All modules (listed by class and label) and all their consumed products.\n";
281  out << "Consumed products are listed by type, label, instance, process.\n";
282  out << "For products not in the event, \'run\' or \'lumi\' is added to indicate the TTree they are from.\n";
283  out << "For products that are declared with mayConsume, \'may consume\' is added.\n";
284  out << "For products consumed for Views, \'element type\' is added\n";
285  out << "For products only read from previous processes, \'skip current process\' is added\n";
286  for(auto const* module : allModules) {
287  out << " " << module->moduleName() << "/\'" << module->moduleLabel() << "\'";
288  std::vector<ConsumesInfo> consumesInfo = pathsAndConsumes.consumesInfo(module->id());
289  if(!consumesInfo.empty()) {
290  out << " consumes:\n";
291  for(auto const& info : consumesInfo) {
292  out << " " << info.type() << " \'" << info.label() << "\' \'" << info.instance();
293  out << "\' \'" << info.process() << "\'";
294  if(info.branchType() == InLumi) {
295  out << ", lumi";
296  } else if(info.branchType() == InRun) {
297  out << ", run";
298  }
299  if(!info.alwaysGets()) {
300  out << ", may consume";
301  }
302  if(info.kindOfType() == ELEMENT_TYPE) {
303  out << ", element type";
304  }
305  if(info.skipCurrentProcess()) {
306  out << ", skip current process";
307  }
308  out << "\n";
309  }
310  } else {
311  out << "\n";
312  }
313  }
314  }
315 }
316 
317 void
319  LogAbsolute("Tracer") << TimeStamper(printTimestamps_) << indention_ << " finished: begin job";
320 }
321 
322 void
324  LogAbsolute("Tracer") << TimeStamper(printTimestamps_) << indention_ << " finished: end job";
325 }
326 
327 void
329  LogAbsolute("Tracer") << TimeStamper(printTimestamps_) << indention_ << indention_ << " starting: source event";
330 }
331 
332 void
334  LogAbsolute("Tracer") << TimeStamper(printTimestamps_) << indention_ << indention_ << " finished: source event";
335 }
336 
337 void
339  LogAbsolute("Tracer") << TimeStamper(printTimestamps_) << indention_ << indention_ << " starting: source lumi";
340 }
341 
342 void
344  LogAbsolute("Tracer") << TimeStamper(printTimestamps_) << indention_ << indention_ << " finished: source lumi";
345 }
346 
347 void
349  LogAbsolute("Tracer") << TimeStamper(printTimestamps_) << indention_ << indention_ << " starting: source run";
350 }
351 
352 void
354  LogAbsolute("Tracer") << TimeStamper(printTimestamps_) << indention_ << indention_ << " finished: source run";
355 }
356 
357 void
358 Tracer::preOpenFile(std::string const& lfn, bool b) {
359  LogAbsolute out("Tracer");
360  out << TimeStamper(printTimestamps_);
361  out << indention_ << indention_ << " starting: open input file: lfn = " << lfn;
362  if(dumpNonModuleContext_) out << " usedFallBack = " << b;
363 }
364 
365 void
366 Tracer::postOpenFile (std::string const& lfn, bool b) {
367  LogAbsolute out("Tracer");
368  out << TimeStamper(printTimestamps_);
369  out << indention_ << indention_ << " finished: open input file: lfn = " << lfn;
370  if(dumpNonModuleContext_) out << " usedFallBack = " << b;
371 }
372 
373 void
374 Tracer::preCloseFile(std::string const & lfn, bool b) {
375  LogAbsolute out("Tracer");
376  out << TimeStamper(printTimestamps_);
377  out << indention_ << indention_ << " starting: close input file: lfn = " << lfn;
378  if(dumpNonModuleContext_) out << " usedFallBack = " << b;
379 }
380 void
381 Tracer::postCloseFile (std::string const& lfn, bool b) {
382  LogAbsolute out("Tracer");
383  out << TimeStamper(printTimestamps_);
384  out << indention_ << indention_ << " finished: close input file: lfn = " << lfn;
385  if(dumpNonModuleContext_) out << " usedFallBack = " << b;
386 }
387 
388 void
390  ModuleDescription const& desc = *mcc.moduleDescription();
391  LogAbsolute out("Tracer");
392  out << TimeStamper(printTimestamps_);
393  out << indention_ << indention_ << " starting: begin stream for module: stream = " << sc.streamID() << " label = '" << desc.moduleLabel() << "' id = " << desc.id();
394  if(dumpContextForLabels_.find(desc.moduleLabel()) != dumpContextForLabels_.end()) {
395  out << "\n" << sc;
396  out << mcc;
397  }
398 }
399 
400 void
402  ModuleDescription const& desc = *mcc.moduleDescription();
403  LogAbsolute out("Tracer");
404  out << TimeStamper(printTimestamps_);
405  out << indention_ << indention_ << " finished: begin stream for module: stream = " << sc.streamID() << " label = '" << desc.moduleLabel() << "' id = " << desc.id();
406  if(dumpContextForLabels_.find(desc.moduleLabel()) != dumpContextForLabels_.end()) {
407  out << "\n" << sc;
408  out << mcc;
409  }
410 }
411 
412 void
414  ModuleDescription const& desc = *mcc.moduleDescription();
415  LogAbsolute out("Tracer");
416  out << TimeStamper(printTimestamps_);
417  out << indention_ << indention_ << " starting: end stream for module: stream = " << sc.streamID() << " label = '" << desc.moduleLabel() << "' id = " << desc.id();
418  if(dumpContextForLabels_.find(desc.moduleLabel()) != dumpContextForLabels_.end()) {
419  out << "\n" << sc;
420  out << mcc;
421  }
422 }
423 
424 void
426  ModuleDescription const& desc = *mcc.moduleDescription();
427  LogAbsolute out("Tracer");
428  out << TimeStamper(printTimestamps_);
429  out << indention_ << indention_ << " finished: end stream for module: stream = " << sc.streamID() << " label = '" << desc.moduleLabel() << "' id = " << desc.id();
430  if(dumpContextForLabels_.find(desc.moduleLabel()) != dumpContextForLabels_.end()) {
431  out << "\n" << sc;
432  out << mcc;
433  }
434 }
435 
436 void
438  LogAbsolute out("Tracer");
439  out << TimeStamper(printTimestamps_);
440  out << indention_ << indention_ << " starting: global begin run " << gc.luminosityBlockID().run()
441  << " : time = " << gc.timestamp().value();
443  out << "\n" << gc;
444  }
445 }
446 
447 void
449  LogAbsolute out("Tracer");
450  out << TimeStamper(printTimestamps_);
451  out << indention_ << indention_ << " finished: global begin run " << gc.luminosityBlockID().run()
452  << " : time = " << gc.timestamp().value();
454  out << "\n" << gc;
455  }
456 }
457 
458 void
460  LogAbsolute out("Tracer");
461  out << TimeStamper(printTimestamps_);
462  out << indention_ << indention_ << " starting: global end run " << gc.luminosityBlockID().run()
463  << " : time = " << gc.timestamp().value();
465  out << "\n" << gc;
466  }
467 }
468 
469 void
471  LogAbsolute out("Tracer");
472  out << TimeStamper(printTimestamps_);
473  out << indention_ << indention_ << " finished: global end run " << gc.luminosityBlockID().run()
474  << " : time = " << gc.timestamp().value();
476  out << "\n" << gc;
477  }
478 }
479 
480 void
482  LogAbsolute out("Tracer");
483  out << TimeStamper(printTimestamps_);
484  out << indention_ << indention_ << " starting: begin run: stream = " << sc.streamID() << " run = " << sc.eventID().run()
485  << " time = " << sc.timestamp().value();
487  out << "\n" << sc;
488  }
489 }
490 
491 void
493  LogAbsolute out("Tracer");
494  out << TimeStamper(printTimestamps_);
495  out << indention_ << indention_ << " finished: begin run: stream = " << sc.streamID() << " run = " << sc.eventID().run()
496  << " time = " << sc.timestamp().value();
498  out << "\n" << sc;
499  }
500 }
501 
502 void
504  LogAbsolute out("Tracer");
505  out << TimeStamper(printTimestamps_);
506  out << indention_ << indention_ << " starting: end run: stream = " << sc.streamID() << " run = " << sc.eventID().run()
507  << " time = " << sc.timestamp().value();
509  out << "\n" << sc;
510  }
511 }
512 
513 void
515  LogAbsolute out("Tracer");
516  out << TimeStamper(printTimestamps_);
517  out << indention_ << indention_ << " finished: end run: stream = " << sc.streamID() << " run = " << sc.eventID().run()
518  << " time = " << sc.timestamp().value();
520  out << "\n" << sc;
521  }
522 }
523 
524 void
526  LogAbsolute out("Tracer");
527  out << TimeStamper(printTimestamps_);
528  out << indention_ << indention_ << " starting: global begin lumi: run = " << gc.luminosityBlockID().run()
529  << " lumi = " << gc.luminosityBlockID().luminosityBlock() << " time = " << gc.timestamp().value();
531  out << "\n" << gc;
532  }
533 }
534 
535 void
537  LogAbsolute out("Tracer");
538  out << TimeStamper(printTimestamps_);
539  out << indention_ << indention_ << " finished: global begin lumi: run = " << gc.luminosityBlockID().run()
540  << " lumi = " << gc.luminosityBlockID().luminosityBlock() << " time = " << gc.timestamp().value();
542  out << "\n" << gc;
543  }
544 }
545 
546 void
548  LogAbsolute out("Tracer");
549  out << TimeStamper(printTimestamps_);
550  out << indention_ << indention_ << " starting: global end lumi: run = " << gc.luminosityBlockID().run()
551  << " lumi = " << gc.luminosityBlockID().luminosityBlock() << " time = " << gc.timestamp().value();
553  out << "\n" << gc;
554  }
555 }
556 
557 void
559  LogAbsolute out("Tracer");
560  out << TimeStamper(printTimestamps_);
561  out << indention_ << indention_ << " finished: global end lumi: run = " << gc.luminosityBlockID().run()
562  << " lumi = " << gc.luminosityBlockID().luminosityBlock() << " time = " << gc.timestamp().value();
564  out << "\n" << gc;
565  }
566 }
567 
568 void
570  LogAbsolute out("Tracer");
571  out << TimeStamper(printTimestamps_);
572  out << indention_ << indention_ << " starting: begin lumi: stream = " << sc.streamID() << " run = " << sc.eventID().run()
573  << " lumi = " << sc.eventID().luminosityBlock() << " time = " << sc.timestamp().value();
575  out << "\n" << sc;
576  }
577 }
578 
579 void
581  LogAbsolute out("Tracer");
582  out << TimeStamper(printTimestamps_);
583  out << indention_ << indention_ << " finished: begin lumi: stream = " << sc.streamID() << " run = " << sc.eventID().run()
584  << " lumi = " << sc.eventID().luminosityBlock() << " time = " << sc.timestamp().value();
586  out << "\n" << sc;
587  }
588 }
589 
590 void
592  LogAbsolute out("Tracer");
593  out << TimeStamper(printTimestamps_);
594  out << indention_ << indention_ << " starting: end lumi: stream = " << sc.streamID() << " run = " << sc.eventID().run()
595  << " lumi = " << sc.eventID().luminosityBlock() << " time = " << sc.timestamp().value();
597  out << "\n" << sc;
598  }
599 }
600 
601 void
603  LogAbsolute out("Tracer");
604  out << TimeStamper(printTimestamps_);
605  out << indention_ << indention_ << " finished: end lumi: stream = " << sc.streamID() << " run = " << sc.eventID().run()
606  << " lumi = " << sc.eventID().luminosityBlock() << " time = " << sc.timestamp().value();
608  out << "\n" << sc;
609  }
610 }
611 
612 void
614  LogAbsolute out("Tracer");
615  out << TimeStamper(printTimestamps_);
616  out << indention_ << indention_ << " starting: processing event : stream = " << sc.streamID() << " run = " << sc.eventID().run()
617  << " lumi = " << sc.eventID().luminosityBlock() << " event = " << sc.eventID().event() << " time = " << sc.timestamp().value();
619  out << "\n" << sc;
620  }
621 }
622 
623 void
625  LogAbsolute out("Tracer");
626  out << TimeStamper(printTimestamps_);
627  out << indention_ << indention_ << " finished: processing event : stream = " << sc.streamID() << " run = " << sc.eventID().run()
628  << " lumi = " << sc.eventID().luminosityBlock() << " event = " << sc.eventID().event() << " time = " << sc.timestamp().value();
630  out << "\n" << sc;
631  }
632 }
633 
634 void
636  LogAbsolute out("Tracer");
637  out << TimeStamper(printTimestamps_);
638  out << indention_ << indention_ << indention_ << " starting: processing path '" << pc.pathName() << "' : stream = " << sc.streamID();
640  out << "\n" << sc;
641  out << pc;
642  }
643 }
644 
645 void
647  LogAbsolute out("Tracer");
648  out << TimeStamper(printTimestamps_);
649  out << indention_ << indention_ << indention_ << " finished: processing path '" << pc.pathName() << "' : stream = " << sc.streamID();
651  out << "\n" << sc;
652  out << pc;
653  }
654 }
655 
656 void
658  LogAbsolute out("Tracer");
659  out << TimeStamper(printTimestamps_);
660  out << indention_ << indention_ << " starting: constructing module with label '" << desc.moduleLabel() << "' id = " << desc.id();
661  if(dumpContextForLabels_.find(desc.moduleLabel()) != dumpContextForLabels_.end()) {
662  out << "\n" << desc;
663  }
664 }
665 
666 void
668  LogAbsolute out("Tracer");
669  out << TimeStamper(printTimestamps_);
670  out << indention_ << indention_ << " finished: constructing module with label '" << desc.moduleLabel() << "' id = " << desc.id();
671  if(dumpContextForLabels_.find(desc.moduleLabel()) != dumpContextForLabels_.end()) {
672  out << "\n" << desc;
673  }
674 }
675 
676 void
678  LogAbsolute out("Tracer");
679  out << TimeStamper(printTimestamps_);
680  out << indention_ << indention_;
681  out << " starting: begin job for module with label '" << desc.moduleLabel() << "' id = " << desc.id();
682  if(dumpContextForLabels_.find(desc.moduleLabel()) != dumpContextForLabels_.end()) {
683  out << "\n" << desc;
684  }
685 }
686 
687 void
689  LogAbsolute out("Tracer");
690  out << TimeStamper(printTimestamps_);
691  out << indention_ << indention_;
692  out << " finished: begin job for module with label '" << desc.moduleLabel() << "' id = " << desc.id();
693  if(dumpContextForLabels_.find(desc.moduleLabel()) != dumpContextForLabels_.end()) {
694  out << "\n" << desc;
695  }
696 }
697 
698 void
700  LogAbsolute out("Tracer");
701  out << TimeStamper(printTimestamps_);
702  out << indention_ << indention_;
703  out << " starting: end job for module with label '" << desc.moduleLabel() << "' id = " << desc.id();
704  if(dumpContextForLabels_.find(desc.moduleLabel()) != dumpContextForLabels_.end()) {
705  out << "\n" << desc;
706  }
707 }
708 
709 void
711  LogAbsolute out("Tracer");
712  out << TimeStamper(printTimestamps_);
713  out << indention_ << indention_;
714  out << " finished: end job for module with label '" << desc.moduleLabel() << "' id = " << desc.id();
715  if(dumpContextForLabels_.find(desc.moduleLabel()) != dumpContextForLabels_.end()) {
716  out << "\n" << desc;
717  }
718 }
719 
720 void
722  LogAbsolute out("Tracer");
723  out << TimeStamper(printTimestamps_);
724  unsigned int nIndents = mcc.depth() + 4;
725  for(unsigned int i = 0; i < nIndents; ++i) {
726  out << indention_;
727  }
728  out << " starting: processing event for module: stream = " << sc.streamID() << " label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
730  out << "\n" << sc;
731  out << mcc;
732  }
733 }
734 
735 void
737  LogAbsolute out("Tracer");
738  out << TimeStamper(printTimestamps_);
739  unsigned int nIndents = mcc.depth() + 4;
740  for(unsigned int i = 0; i < nIndents; ++i) {
741  out << indention_;
742  }
743  out << " finished: processing event for module: stream = " << sc.streamID() << " label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
745  out << "\n" << sc;
746  out << mcc;
747  }
748 }
749 
750 
751 void
753  LogAbsolute out("Tracer");
754  out << TimeStamper(printTimestamps_);
755  unsigned int nIndents = mcc.depth() + 4;
756  for(unsigned int i = 0; i < nIndents; ++i) {
757  out << indention_;
758  }
759  out << " starting: delayed processing event for module: stream = " << sc.streamID() << " label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
761  out << "\n" << sc;
762  out << mcc;
763  }
764 }
765 
766 void
768  LogAbsolute out("Tracer");
769  out << TimeStamper(printTimestamps_);
770  unsigned int nIndents = mcc.depth() + 4;
771  for(unsigned int i = 0; i < nIndents; ++i) {
772  out << indention_;
773  }
774  out << " finished: delayed processing event for module: stream = " << sc.streamID() << " label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
776  out << "\n" << sc;
777  out << mcc;
778  }
779 }
780 
781 
782 void
784  LogAbsolute out("Tracer");
785  out << TimeStamper(printTimestamps_);
786  unsigned int nIndents = mcc.depth() + 3;
787  for(unsigned int i = 0; i < nIndents; ++i) {
788  out << indention_;
789  }
790  out << " starting: begin run for module: stream = " << sc.streamID() << " label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
792  out << "\n" << sc;
793  out << mcc;
794  }
795 }
796 
797 void
799  LogAbsolute out("Tracer");
800  out << TimeStamper(printTimestamps_);
801  unsigned int nIndents = mcc.depth() + 3;
802  for(unsigned int i = 0; i < nIndents; ++i) {
803  out << indention_;
804  }
805  out << " finished: begin run for module: stream = " << sc.streamID() << " label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
807  out << "\n" << sc;
808  out << mcc;
809  }
810 }
811 
812 void
814  LogAbsolute out("Tracer");
815  out << TimeStamper(printTimestamps_);
816  unsigned int nIndents = mcc.depth() + 3;
817  for(unsigned int i = 0; i < nIndents; ++i) {
818  out << indention_;
819  }
820  out << " starting: end run for module: stream = " << sc.streamID() << " label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
822  out << "\n" << sc;
823  out << mcc;
824  }
825 }
826 
827 void
829  LogAbsolute out("Tracer");
830  out << TimeStamper(printTimestamps_);
831  unsigned int nIndents = mcc.depth() + 3;
832  for(unsigned int i = 0; i < nIndents; ++i) {
833  out << indention_;
834  }
835  out << " finished: end run for module: stream = " << sc.streamID() << " label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
837  out << "\n" << sc;
838  out << mcc;
839  }
840 }
841 
842 void
844  LogAbsolute out("Tracer");
845  out << TimeStamper(printTimestamps_);
846  unsigned int nIndents = mcc.depth() + 3;
847  for(unsigned int i = 0; i < nIndents; ++i) {
848  out << indention_;
849  }
850  out << " starting: begin lumi for module: stream = " << sc.streamID() << " label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
852  out << "\n" << sc;
853  out << mcc;
854  }
855 }
856 
857 void
859  LogAbsolute out("Tracer");
860  out << TimeStamper(printTimestamps_);
861  unsigned int nIndents = mcc.depth() + 3;
862  for(unsigned int i = 0; i < nIndents; ++i) {
863  out << indention_;
864  }
865  out << " finished: begin lumi for module: stream = " << sc.streamID() << " label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
867  out << "\n" << sc;
868  out << mcc;
869  }
870 }
871 
872 void
874  LogAbsolute out("Tracer");
875  out << TimeStamper(printTimestamps_);
876  unsigned int nIndents = mcc.depth() + 3;
877  for(unsigned int i = 0; i < nIndents; ++i) {
878  out << indention_;
879  }
880  out << " starting: end lumi for module: stream = " << sc.streamID() << " label = '"<< mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
882  out << "\n" << sc;
883  out << mcc;
884  }
885 }
886 
887 void
889  LogAbsolute out("Tracer");
890  out << TimeStamper(printTimestamps_);
891  unsigned int nIndents = mcc.depth() + 3;
892  for(unsigned int i = 0; i < nIndents; ++i) {
893  out << indention_;
894  }
895  out << " finished: end lumi for module: stream = " << sc.streamID() << " label = '"<< mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
897  out << "\n" << sc;
898  out << mcc;
899  }
900 }
901 
902 void
904  LogAbsolute out("Tracer");
905  out << TimeStamper(printTimestamps_);
906  unsigned int nIndents = mcc.depth() + 3;
907  for(unsigned int i = 0; i < nIndents; ++i) {
908  out << indention_;
909  }
910  out << " starting: global begin run for module: label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
912  out << "\n" << gc;
913  out << mcc;
914  }
915 }
916 
917 void
919  LogAbsolute out("Tracer");
920  out << TimeStamper(printTimestamps_);
921  unsigned int nIndents = mcc.depth() + 3;
922  for(unsigned int i = 0; i < nIndents; ++i) {
923  out << indention_;
924  }
925  out << " finished: global begin run for module: label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
927  out << "\n" << gc;
928  out << mcc;
929  }
930 }
931 
932 void
934  LogAbsolute out("Tracer");
935  out << TimeStamper(printTimestamps_);
936  unsigned int nIndents = mcc.depth() + 3;
937  for(unsigned int i = 0; i < nIndents; ++i) {
938  out << indention_;
939  }
940  out << " starting: global end run for module: label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
942  out << "\n" << gc;
943  out << mcc;
944  }
945 }
946 
947 void
949  LogAbsolute out("Tracer");
950  out << TimeStamper(printTimestamps_);
951  unsigned int nIndents = mcc.depth() + 3;
952  for(unsigned int i = 0; i < nIndents; ++i) {
953  out << indention_;
954  }
955  out << " finished: global end run for module: label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
957  out << "\n" << gc;
958  out << mcc;
959  }
960 }
961 
962 void
964  LogAbsolute out("Tracer");
965  out << TimeStamper(printTimestamps_);
966  unsigned int nIndents = mcc.depth() + 3;
967  for(unsigned int i = 0; i < nIndents; ++i) {
968  out << indention_;
969  }
970  out << " starting: global begin lumi for module: label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
972  out << "\n" << gc;
973  out << mcc;
974  }
975 }
976 
977 void
979  LogAbsolute out("Tracer");
980  out << TimeStamper(printTimestamps_);
981  unsigned int nIndents = mcc.depth() + 3;
982  for(unsigned int i = 0; i < nIndents; ++i) {
983  out << indention_;
984  }
985  out << " finished: global begin lumi for module: label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
987  out << "\n" << gc;
988  out << mcc;
989  }
990 }
991 
992 void
994  LogAbsolute out("Tracer");
995  out << TimeStamper(printTimestamps_);
996  unsigned int nIndents = mcc.depth() + 3;
997  for(unsigned int i = 0; i < nIndents; ++i) {
998  out << indention_;
999  }
1000  out << " starting: global end lumi for module: label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
1002  out << "\n" << gc;
1003  out << mcc;
1004  }
1005 }
1006 
1007 void
1009  LogAbsolute out("Tracer");
1010  out << TimeStamper(printTimestamps_);
1011  unsigned int nIndents = mcc.depth() + 3;
1012  for(unsigned int i = 0; i < nIndents; ++i) {
1013  out << indention_;
1014  }
1015  out << " finished: global end lumi for module: label = '" << mcc.moduleDescription()->moduleLabel() << "' id = " << mcc.moduleDescription()->id();
1017  out << "\n" << gc;
1018  out << mcc;
1019  }
1020 }
1021 
1022 void
1024  LogAbsolute out("Tracer");
1025  out << TimeStamper(printTimestamps_);
1026  out << indention_;
1027  out << " starting: constructing source: " << desc.moduleName();
1028  if(dumpNonModuleContext_) {
1029  out << "\n" << desc;
1030  }
1031 }
1032 
1033 void
1035  LogAbsolute out("Tracer");
1036  out << TimeStamper(printTimestamps_);
1037  out << indention_;
1038  out << " finished: constructing source: " << desc.moduleName();
1039  if(dumpNonModuleContext_) {
1040  out << "\n" << desc;
1041  }
1042 }
void preCloseFile(std::string const &lfn, bool primary)
Definition: Tracer.cc:374
RunNumber_t run() const
Definition: EventID.h:39
void watchPostModuleGlobalEndLumi(PostModuleGlobalEndLumi::slot_type const &iSlot)
void watchPostModuleConstruction(PostModuleConstruction::slot_type const &iSlot)
std::string const & pathName() const
Definition: PathContext.h:37
EventNumber_t event() const
Definition: EventID.h:41
void watchPreModuleGlobalBeginRun(PreModuleGlobalBeginRun::slot_type const &iSlot)
T getUntrackedParameter(std::string const &, T const &) const
void watchPreEvent(PreEvent::slot_type const &iSlot)
int i
Definition: DBlmapReader.cc:9
void postSourceRun()
Definition: Tracer.cc:353
std::string const & processName() const
static const TGPicture * info(bool iBackgroundIsBlack)
boost::uint64_t value() const
void watchPrePathEvent(PrePathEvent::slot_type const &iSlot)
void postModuleGlobalBeginRun(GlobalContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:918
void watchPreallocate(Preallocate::slot_type const &iSlot)
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
void postModuleGlobalBeginLumi(GlobalContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:978
void postModuleStreamEndLumi(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:888
void watchPostEndJob(PostEndJob::slot_type const &iSlot)
void preModuleGlobalBeginLumi(GlobalContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:963
void postModuleConstruction(ModuleDescription const &md)
Definition: Tracer.cc:667
void postModuleEndStream(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:425
std::vector< ConsumesInfo > consumesInfo(unsigned int moduleID) const
void postModuleGlobalEndLumi(GlobalContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:1008
void watchPostModuleEndStream(PostModuleEndStream::slot_type const &iSlot)
void watchPreModuleEvent(PreModuleEvent::slot_type const &iSlot)
void watchPreModuleConstruction(PreModuleConstruction::slot_type const &iSlot)
void watchPreGlobalEndLumi(PreGlobalEndLumi::slot_type const &iSlot)
void watchPostEvent(PostEvent::slot_type const &iSlot)
void preallocate(service::SystemBounds const &)
Definition: Tracer.cc:224
LuminosityBlockID const & luminosityBlockID() const
Definition: GlobalContext.h:52
void postStreamBeginLumi(StreamContext const &)
Definition: Tracer.cc:580
void watchPreStreamEndRun(PreStreamEndRun::slot_type const &iSlot)
void watchPreSourceConstruction(PreSourceConstruction::slot_type const &iSlot)
void preModuleGlobalEndLumi(GlobalContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:993
void watchPostSourceConstruction(PostSourceConstruction::slot_type const &iSlot)
void watchPostStreamEndLumi(PostStreamEndLumi::slot_type const &iSlot)
void watchPreGlobalBeginLumi(PreGlobalBeginLumi::slot_type const &iSlot)
std::vector< ModuleDescription const * > const & modulesOnEndPath(unsigned int endPathIndex) const
std::string const & moduleName() const
void watchPostPathEvent(PostPathEvent::slot_type const &iSlot)
void watchPostModuleEvent(PostModuleEvent::slot_type const &iSlot)
void preModuleStreamBeginLumi(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:843
void watchPostModuleGlobalBeginLumi(PostModuleGlobalBeginLumi::slot_type const &iSlot)
void watchPostModuleStreamEndLumi(PostModuleStreamEndLumi::slot_type const &iSlot)
void preGlobalEndLumi(GlobalContext const &)
Definition: Tracer.cc:547
void preModuleEndJob(ModuleDescription const &md)
Definition: Tracer.cc:699
void watchPostGlobalBeginLumi(PostGlobalBeginLumi::slot_type const &iSlot)
void watchPostModuleStreamBeginRun(PostModuleStreamBeginRun::slot_type const &iSlot)
void watchPostSourceEvent(PostSourceEvent::slot_type const &iSlot)
void preModuleConstruction(ModuleDescription const &md)
Definition: Tracer.cc:657
std::vector< ModuleDescription const * > const & modulesOnPath(unsigned int pathIndex) const
void preBeginJob(PathsAndConsumesOfModulesBase const &, ProcessContext const &)
Definition: Tracer.cc:231
void watchPreModuleBeginStream(PreModuleBeginStream::slot_type const &iSlot)
void postStreamEndRun(StreamContext const &)
Definition: Tracer.cc:514
void postGlobalEndLumi(GlobalContext const &)
Definition: Tracer.cc:558
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:40
void postModuleBeginJob(ModuleDescription const &md)
Definition: Tracer.cc:688
void watchPreStreamEndLumi(PreStreamEndLumi::slot_type const &iSlot)
void postModuleStreamEndRun(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:828
std::string const & moduleLabel() const
void watchPreModuleGlobalEndRun(PreModuleGlobalEndRun::slot_type const &iSlot)
void postCloseFile(std::string const &, bool)
Definition: Tracer.cc:381
std::vector< ModuleDescription const * > const & allModules() const
Timestamp const & timestamp() const
Definition: GlobalContext.h:55
void preStreamEndLumi(StreamContext const &)
Definition: Tracer.cc:591
std::vector< std::string > const & endPaths() const
void preOpenFile(std::string const &, bool)
Definition: Tracer.cc:358
unsigned int maxNumberOfStreams() const
Definition: SystemBounds.h:43
void watchPreOpenFile(PreOpenFile::slot_type const &iSlot)
void watchPostGlobalBeginRun(PostGlobalBeginRun::slot_type const &iSlot)
void watchPostCloseFile(PostCloseFile::slot_type const &iSlot)
void watchPreGlobalEndRun(PreGlobalEndRun::slot_type const &iSlot)
void preGlobalBeginRun(GlobalContext const &)
Definition: Tracer.cc:437
PreStreamEarlyTermination preStreamEarlyTerminationSignal_
PreSourceEarlyTermination preSourceEarlyTerminationSignal_
void preSourceEvent(StreamID)
Definition: Tracer.cc:328
void preGlobalEndRun(GlobalContext const &)
Definition: Tracer.cc:459
void watchPostSourceRun(PostSourceRun::slot_type const &iSlot)
void watchPostStreamBeginLumi(PostStreamBeginLumi::slot_type const &iSlot)
void preModuleStreamEndLumi(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:873
Tracer(const ParameterSet &, ActivityRegistry &)
Definition: Tracer.cc:66
void preModuleStreamBeginRun(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:783
void watchPreSourceLumi(PreSourceLumi::slot_type const &iSlot)
ModuleDescription const * moduleDescription(unsigned int moduleID) const
void prePathEvent(StreamContext const &, PathContext const &)
Definition: Tracer.cc:635
void watchPreModuleEventDelayedGet(PreModuleEventDelayedGet::slot_type const &iSlot)
ModuleDescription const * moduleDescription() const
void postModuleStreamBeginLumi(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:858
RunNumber_t run() const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: Tracer.cc:212
int j
Definition: DBlmapReader.cc:9
bool dumpPathsAndConsumes_
Definition: Tracer.h:151
void watchPreModuleEndJob(PreModuleEndJob::slot_type const &iSlot)
void watchPostGlobalEndLumi(PostGlobalEndLumi::slot_type const &iSlot)
void watchPreSourceRun(PreSourceRun::slot_type const &iSlot)
void preModuleGlobalEndRun(GlobalContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:933
void postStreamBeginRun(StreamContext const &)
Definition: Tracer.cc:492
std::ostream & operator<<(std::ostream &os, SimpleMemoryCheck::SignificantEvent const &se)
Definition: Memory.cc:806
void watchPreModuleBeginJob(PreModuleBeginJob::slot_type const &iSlot)
void preStreamEndRun(StreamContext const &)
Definition: Tracer.cc:503
void watchPostStreamEndRun(PostStreamEndRun::slot_type const &iSlot)
void postOpenFile(std::string const &, bool)
Definition: Tracer.cc:366
PreGlobalEarlyTermination preGlobalEarlyTerminationSignal_
void watchPreModuleGlobalBeginLumi(PreModuleGlobalBeginLumi::slot_type const &iSlot)
void watchPostModuleStreamEndRun(PostModuleStreamEndRun::slot_type const &iSlot)
void postPathEvent(StreamContext const &, PathContext const &, HLTPathStatus const &)
Definition: Tracer.cc:646
StreamID const & streamID() const
Definition: StreamContext.h:57
tuple out
Definition: dbtoconf.py:99
void watchPreGlobalBeginRun(PreGlobalBeginRun::slot_type const &iSlot)
void watchPreModuleStreamBeginLumi(PreModuleStreamBeginLumi::slot_type const &iSlot)
void setComment(std::string const &value)
void postModuleEventDelayedGet(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:767
void watchPostModuleBeginStream(PostModuleBeginStream::slot_type const &iSlot)
unsigned int maxNumberOfConcurrentLuminosityBlocks() const
Definition: SystemBounds.h:45
void watchPostSourceLumi(PostSourceLumi::slot_type const &iSlot)
void watchPreCloseFile(PreCloseFile::slot_type const &iSlot)
void watchPostModuleEventDelayedGet(PostModuleEventDelayedGet::slot_type const &iSlot)
void watchPostModuleGlobalEndRun(PostModuleGlobalEndRun::slot_type const &iSlot)
void watchPostModuleStreamBeginLumi(PostModuleStreamBeginLumi::slot_type const &iSlot)
void preSourceLumi()
Definition: Tracer.cc:338
void postSourceEvent(StreamID)
Definition: Tracer.cc:333
std::string indention_
Definition: Tracer.h:148
void watchPreModuleStreamEndLumi(PreModuleStreamEndLumi::slot_type const &iSlot)
void watchPreModuleStreamBeginRun(PreModuleStreamBeginRun::slot_type const &iSlot)
void watchPostGlobalEndRun(PostGlobalEndRun::slot_type const &iSlot)
double b
Definition: hdecay.h:120
LuminosityBlockNumber_t luminosityBlock() const
void watchPreStreamBeginLumi(PreStreamBeginLumi::slot_type const &iSlot)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void watchPostOpenFile(PostOpenFile::slot_type const &iSlot)
void watchPreModuleEndStream(PreModuleEndStream::slot_type const &iSlot)
std::vector< ModuleDescription const * > const & modulesWhoseProductsAreConsumedBy(unsigned int moduleID) const
void preSourceConstruction(ModuleDescription const &md)
Definition: Tracer.cc:1023
void watchPreBeginJob(PreBeginJob::slot_type const &iSlot)
convenience function for attaching to signal
void preModuleEvent(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:721
void preModuleBeginStream(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:389
void watchPostStreamBeginRun(PostStreamBeginRun::slot_type const &iSlot)
void postGlobalBeginRun(GlobalContext const &)
Definition: Tracer.cc:448
void postGlobalEndRun(GlobalContext const &)
Definition: Tracer.cc:470
void postGlobalBeginLumi(GlobalContext const &)
Definition: Tracer.cc:536
void watchPreStreamBeginRun(PreStreamBeginRun::slot_type const &iSlot)
std::vector< std::string > const & paths() const
void watchPreModuleStreamEndRun(PreModuleStreamEndRun::slot_type const &iSlot)
void preEvent(StreamContext const &)
Definition: Tracer.cc:613
void watchPostModuleBeginJob(PostModuleBeginJob::slot_type const &iSlot)
void watchPostModuleGlobalBeginRun(PostModuleGlobalBeginRun::slot_type const &iSlot)
unsigned int maxNumberOfConcurrentRuns() const
Definition: SystemBounds.h:44
void preStreamBeginLumi(StreamContext const &)
Definition: Tracer.cc:569
void postModuleEndJob(ModuleDescription const &md)
Definition: Tracer.cc:710
void preModuleEndStream(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:413
void postModuleEvent(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:736
EventID const & eventID() const
Definition: StreamContext.h:59
void preModuleEventDelayedGet(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:752
void watchPreSourceEvent(PreSourceEvent::slot_type const &iSlot)
void postModuleBeginStream(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:401
bool dumpNonModuleContext_
Definition: Tracer.h:150
Definition: vlib.h:208
void preModuleBeginJob(ModuleDescription const &md)
Definition: Tracer.cc:677
void postStreamEndLumi(StreamContext const &)
Definition: Tracer.cc:602
void preModuleStreamEndRun(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:813
void postEvent(StreamContext const &)
Definition: Tracer.cc:624
void preStreamBeginRun(StreamContext const &)
Definition: Tracer.cc:481
TimeValue_t value() const
Definition: Timestamp.h:56
void watchPostModuleEndJob(PostModuleEndJob::slot_type const &iSlot)
void connect(U iFunc)
Definition: Signal.h:63
void postModuleStreamBeginRun(StreamContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:798
void postSourceLumi()
Definition: Tracer.cc:343
void preGlobalBeginLumi(GlobalContext const &)
Definition: Tracer.cc:525
void watchPreModuleGlobalEndLumi(PreModuleGlobalEndLumi::slot_type const &iSlot)
void postModuleGlobalEndRun(GlobalContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:948
unsigned int id() const
void postSourceConstruction(ModuleDescription const &md)
Definition: Tracer.cc:1034
std::set< std::string > dumpContextForLabels_
Definition: Tracer.h:149
void preModuleGlobalBeginRun(GlobalContext const &, ModuleCallingContext const &)
Definition: Tracer.cc:903
void watchPostBeginJob(PostBeginJob::slot_type const &iSlot)
convenience function for attaching to signal
Timestamp const & timestamp() const
Definition: StreamContext.h:62