35 using duration_t = std::chrono::microseconds;
36 using clock_t = std::chrono::steady_clock;
40 preSourceTransition =
'S',
41 postSourceTransition =
's',
42 preModulePrefetching =
'P',
43 postModulePrefetching =
'p',
44 preModuleEventAcquire =
'A',
45 postModuleEventAcquire =
'a',
46 preModuleTransition =
'M',
47 preEventReadFromSource =
'R',
48 postEventReadFromSource =
'r',
49 preModuleEventDelayedGet =
'D',
50 postModuleEventDelayedGet =
'd',
51 postModuleTransition =
'm',
52 preESModulePrefetching =
'Q',
53 postESModulePrefetching =
'q',
56 preESModuleAcquire =
'B',
57 postESModuleAcquire =
'b',
58 preFrameworkTransition =
'F',
59 postFrameworkTransition =
'f' 66 writeProcessBlock = -10,
80 accessInputProcessBlock = 8,
81 beginProcessBlock = 9,
87 getNextTransition = 15,
93 os << static_cast<std::underlying_type_t<Step>>(
s);
98 os << static_cast<std::underlying_type_t<Phase>>(
s);
102 template <
Step S,
typename... ARGS>
104 std::ostringstream oss;
115 return Phase::beginStream;
117 return Phase::streamBeginRun;
119 return Phase::streamBeginLumi;
123 return Phase::streamEndLumi;
125 return Phase::streamEndRun;
127 return Phase::endStream;
135 auto toTransition(
edm::StreamContext const& iContext) -> std::underlying_type_t<Phase> {
136 return static_cast<std::underlying_type_t<Phase>
>(toTransitionImpl(iContext));
143 return Phase::beginProcessBlock;
145 return Phase::accessInputProcessBlock;
147 return Phase::globalBeginRun;
149 return Phase::globalBeginLumi;
151 return Phase::globalEndLumi;
153 return Phase::globalWriteLumi;
155 return Phase::globalEndRun;
157 return Phase::globalWriteRun;
159 return Phase::endProcessBlock;
161 return Phase::writeProcessBlock;
168 auto toTransition(
edm::GlobalContext const& iContext) -> std::underlying_type_t<Phase> {
169 return static_cast<std::underlying_type_t<Phase>
>(toTransitionImpl(iContext));
188 struct ESModuleState {
189 ESModuleState(std::shared_ptr<edm::ThreadSafeOutputFileStream>
logFile,
190 decltype(
now()) beginTime,
191 std::shared_ptr<std::vector<std::type_index>> recordIndices)
192 : logFile_{
logFile}, recordIndices_{recordIndices}, beginTime_{beginTime} {}
197 auto const t = std::chrono::duration_cast<duration_t>(
now() - beginTime_).
count();
200 unsigned long phaseID = 0xFFFFFFFF;
202 auto global = top->globalContext();
203 phase = toTransition(*global);
204 phaseID = toTransitionIndex(*global);
206 auto stream = top->getStreamContext();
210 auto stream = top->getStreamContext();
214 auto recordIndex = findRecordIndices(iKey);
215 long long requestingModuleID;
225 auto msg = assembleMessage<S>(
phase,
239 auto itFind =
std::find(recordIndices_->begin(), recordIndices_->end(),
index);
240 return itFind - recordIndices_->begin();
243 std::shared_ptr<edm::ThreadSafeOutputFileStream> logFile_;
244 std::shared_ptr<std::vector<std::type_index>> recordIndices_;
245 decltype(
now()) beginTime_;
249 struct GlobalEDModuleState {
250 GlobalEDModuleState(std::shared_ptr<edm::ThreadSafeOutputFileStream>
logFile, decltype(
now()) beginTime)
251 : logFile_{
logFile}, beginTime_{beginTime} {}
255 auto const t = std::chrono::duration_cast<duration_t>(
now() - beginTime_).
count();
256 long requestingModuleID = 0;
262 auto msg = assembleMessage<S>(toTransition(gc),
263 toTransitionIndex(gc),
273 std::shared_ptr<edm::ThreadSafeOutputFileStream> logFile_;
274 decltype(
now()) beginTime_;
278 struct StreamEDModuleState {
279 StreamEDModuleState(std::shared_ptr<edm::ThreadSafeOutputFileStream>
logFile, decltype(
now()) beginTime)
280 : logFile_{
logFile}, beginTime_{beginTime} {}
284 auto const t = std::chrono::duration_cast<duration_t>(
now() - beginTime_).
count();
285 long requestingModuleID = 0;
291 auto msg = assembleMessage<S>(
297 std::shared_ptr<edm::ThreadSafeOutputFileStream> logFile_;
298 decltype(
now()) beginTime_;
301 struct ModuleCtrDtr {
302 long long beginConstruction = 0;
303 long long endConstruction = 0;
304 long long beginDestruction = 0;
305 long long endDestruction = 0;
311 auto beginTracer =
now();
314 if (iFileName.empty()) {
318 auto logFile = std::make_shared<edm::ThreadSafeOutputFileStream>(iFileName);
322 auto esModuleLabelsPtr = std::make_shared<std::vector<std::string>>();
323 auto& esModuleLabels = *esModuleLabelsPtr;
326 if (esModuleLabels.size() <= iDescription.id_ + 1) {
327 esModuleLabels.resize(iDescription.id_ + 2);
330 if (not iDescription.label_.empty()) {
331 esModuleLabels[iDescription.id_ + 1] = iDescription.label_;
333 esModuleLabels[iDescription.id_ + 1] = iDescription.type_;
336 auto moduleCtrDtrPtr = std::make_shared<std::vector<ModuleCtrDtr>>();
337 auto& moduleCtrDtr = *moduleCtrDtrPtr;
338 auto moduleLabelsPtr = std::make_shared<std::vector<std::string>>();
339 auto& moduleLabels = *moduleLabelsPtr;
341 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
343 auto const mid = md.
id();
344 if (mid < moduleLabels.size()) {
346 moduleCtrDtr[mid].beginConstruction =
t;
348 moduleLabels.resize(mid + 1);
350 moduleCtrDtr.resize(mid + 1);
351 moduleCtrDtr.back().beginConstruction =
t;
355 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
356 moduleCtrDtr[md.
id()].endConstruction =
t;
360 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
361 moduleCtrDtr[md.
id()].beginDestruction =
t;
364 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
365 moduleCtrDtr[md.
id()].endDestruction =
t;
368 auto sourceCtrPtr = std::make_shared<ModuleCtrDtr>();
369 auto& sourceCtr = *sourceCtrPtr;
371 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
372 sourceCtr.beginConstruction =
t;
375 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
376 sourceCtr.endConstruction =
t;
379 auto recordIndices = std::make_shared<std::vector<std::type_index>>();
381 [
logFile, recordIndices](
auto const& recordsToResolvers,
auto const&)
mutable {
382 std::ostringstream oss;
384 auto recordKeys = recordsToResolvers.recordKeys();
385 std::sort(recordKeys.begin(), recordKeys.end());
386 std::vector<std::string> recordNames;
388 recordNames.reserve(recordKeys.size() + 1);
389 recordNames.emplace_back(
"");
390 recordIndices->reserve(recordKeys.size() + 1);
391 recordIndices->push_back(std::type_index(
typeid(
void)));
392 for (
auto const& r : recordKeys) {
393 recordNames.push_back(r.name());
394 recordIndices->push_back(std::type_index(r.type().value()));
407 beginTracer](
auto&,
auto&)
mutable {
409 std::ostringstream oss;
410 moduleIdToLabel(oss, *moduleLabelsPtr,
'M',
"EDModule ID",
"Module label");
412 moduleLabelsPtr.reset();
415 std::ostringstream oss;
416 moduleIdToLabel(oss, *esModuleLabelsPtr,
'N',
"ESModule ID",
"ESModule label");
418 esModuleLabelsPtr.reset();
421 auto const tracerStart = duration_cast<duration_t>(beginTracer - beginTime).
count();
422 auto msg = assembleMessage<Step::preFrameworkTransition>(
423 static_cast<std::underlying_type_t<Phase>
>(Phase::startTracing), 0, 0, 0, 0, tracerStart);
428 auto srcBeginConstruction = sourceCtrPtr->beginConstruction;
429 auto srcEndConstruction = sourceCtrPtr->endConstruction;
430 sourceCtrPtr.reset();
431 auto handleSource = [&srcBeginConstruction, &srcEndConstruction, &
logFile](
long long iTime)
mutable {
432 if (srcBeginConstruction != 0 and srcBeginConstruction < iTime) {
433 auto bmsg = assembleMessage<Step::preSourceTransition>(
434 static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0, srcBeginConstruction);
436 srcBeginConstruction = 0;
438 if (srcEndConstruction != 0 and srcEndConstruction < iTime) {
439 auto bmsg = assembleMessage<Step::postSourceTransition>(
440 static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0, srcEndConstruction);
442 srcEndConstruction = 0;
446 std::sort(moduleCtrDtrPtr->begin(), moduleCtrDtrPtr->end(), [](
auto const&
l,
auto const& r) {
447 return l.beginConstruction < r.beginConstruction;
450 for (
auto const&
ctr : *moduleCtrDtrPtr) {
451 if (
ctr.beginConstruction != 0) {
452 handleSource(
ctr.beginConstruction);
453 auto bmsg = assembleMessage<Step::preModuleTransition>(
454 static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0,
id, 0, 0, 0,
ctr.beginConstruction);
456 handleSource(
ctr.endConstruction);
457 auto emsg = assembleMessage<Step::postModuleTransition>(
458 static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0,
id, 0, 0, 0,
ctr.endConstruction);
464 std::sort(moduleCtrDtrPtr->begin(), moduleCtrDtrPtr->end(), [](
auto const&
l,
auto const& r) {
465 return l.beginDestruction < r.beginDestruction;
467 for (
auto const& dtr : *moduleCtrDtrPtr) {
468 if (dtr.beginDestruction != 0) {
469 handleSource(dtr.beginDestruction);
470 auto bmsg = assembleMessage<Step::preModuleTransition>(
471 static_cast<std::underlying_type_t<Phase>
>(Phase::destruction), 0,
id, 0, 0, 0, dtr.beginDestruction);
473 handleSource(dtr.endDestruction);
474 auto emsg = assembleMessage<Step::postModuleTransition>(
475 static_cast<std::underlying_type_t<Phase>
>(Phase::destruction), 0,
id, 0, 0, 0, dtr.endDestruction);
480 moduleCtrDtrPtr.reset();
482 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
484 auto msg = assembleMessage<Step::preFrameworkTransition>(
485 static_cast<std::underlying_type_t<Phase>
>(
Phase::beginJob), 0, 0, 0, 0,
t);
489 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
490 auto msg = assembleMessage<Step::postFrameworkTransition>(
491 static_cast<std::underlying_type_t<Phase>
>(
Phase::beginJob), 0, 0, 0, 0,
t);
496 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
497 auto msg = assembleMessage<Step::preFrameworkTransition>(
498 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, 0, 0, 0,
t);
502 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
503 auto msg = assembleMessage<Step::postFrameworkTransition>(
504 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, 0, 0, 0,
t);
509 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
510 auto msg = assembleMessage<Step::preFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(
Phase::Event),
519 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
521 assembleMessage<Step::postFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(
Phase::Event),
531 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
533 assembleMessage<Step::preFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(Phase::clearEvent),
542 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
544 assembleMessage<Step::postFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(Phase::clearEvent),
555 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
556 auto msg = assembleMessage<Step::preFrameworkTransition>(toTransition(gc),
557 toTransitionIndex(gc),
577 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
578 auto msg = assembleMessage<Step::postFrameworkTransition>(toTransition(gc),
579 toTransitionIndex(gc),
599 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
600 auto msg = assembleMessage<Step::preFrameworkTransition>(
611 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
612 auto msg = assembleMessage<Step::postFrameworkTransition>(
623 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
624 auto msg = assembleMessage<Step::preFrameworkTransition>(
625 static_cast<std::underlying_type_t<Phase>
>(Phase::esSyncEnqueue),
628 sv.eventID().luminosityBlock(),
634 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
636 assembleMessage<Step::preFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(Phase::esSync),
639 sv.eventID().luminosityBlock(),
645 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
647 assembleMessage<Step::postFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(Phase::esSync),
650 sv.eventID().luminosityBlock(),
658 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
659 auto msg = assembleMessage<Step::preSourceTransition>(
660 static_cast<std::underlying_type_t<Phase>
>(Phase::openFile), 0,
t);
664 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
665 auto msg = assembleMessage<Step::postSourceTransition>(
666 static_cast<std::underlying_type_t<Phase>
>(Phase::openFile), 0,
t);
670 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
671 auto msg = assembleMessage<Step::preSourceTransition>(
676 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
677 auto msg = assembleMessage<Step::postSourceTransition>(
683 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
684 auto msg = assembleMessage<Step::preSourceTransition>(
685 static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginRun),
id.
value(),
t);
689 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
690 auto msg = assembleMessage<Step::postSourceTransition>(
691 static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginRun),
id.
value(),
t);
696 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
697 auto msg = assembleMessage<Step::preSourceTransition>(
698 static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginLumi),
id.
value(),
t);
702 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
703 auto msg = assembleMessage<Step::postSourceTransition>(
704 static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginLumi),
id.
value(),
t);
709 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
710 auto msg = assembleMessage<Step::preSourceTransition>(
711 static_cast<std::underlying_type_t<Phase>
>(Phase::getNextTransition),
t);
715 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
716 auto msg = assembleMessage<Step::postSourceTransition>(
717 static_cast<std::underlying_type_t<Phase>
>(Phase::getNextTransition),
t);
723 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
724 auto msg = assembleMessage<Step::preModuleTransition>(
729 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
730 auto msg = assembleMessage<Step::postModuleTransition>(
742 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
743 auto msg = assembleMessage<Step::preModuleTransition>(
744 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, md.
id(), 0, 0, 0,
t);
748 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
749 auto msg = assembleMessage<Step::postModuleTransition>(
750 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, md.
id(), 0, 0, 0,
t);
763 StreamEDModuleState<Step::postModuleEventDelayedGet>(
logFile, beginTime));
771 StreamEDModuleState<Step::postModulePrefetching>(
logFile, beginTime));
774 StreamEDModuleState<Step::postModuleEventAcquire>(
logFile, beginTime));
792 GlobalEDModuleState<Step::preModuleTransition>(
logFile, beginTime));
794 GlobalEDModuleState<Step::postModuleTransition>(
logFile, beginTime));
822 ESModuleState<Step::preESModulePrefetching>(
logFile, beginTime, recordIndices));
824 ESModuleState<Step::postESModulePrefetching>(
logFile, beginTime, recordIndices));
831 std::ostringstream oss;
832 oss <<
"# Transition Symbol\n";
833 oss <<
"#------------------------ ------\n";
834 oss <<
"# startTracing " << Phase::startTracing <<
"\n" 835 <<
"# construction " << Phase::construction <<
"\n" 836 <<
"# getNextTransition " << Phase::getNextTransition <<
"\n" 837 <<
"# esSyncEnqueue " << Phase::esSyncEnqueue <<
"\n" 838 <<
"# esSync " << Phase::esSync <<
"\n" 840 <<
"# beginStream " << Phase::beginStream <<
"\n" 841 <<
"# openFile " << Phase::openFile <<
"\n" 842 <<
"# beginProcessBlock " << Phase::beginProcessBlock <<
"\n" 843 <<
"# accessInputProcessBlock " << Phase::accessInputProcessBlock <<
"\n" 844 <<
"# globalBeginRun " << Phase::globalBeginRun <<
"\n" 845 <<
"# streamBeginRun " << Phase::streamBeginRun <<
"\n" 846 <<
"# globalBeginLumi " << Phase::globalBeginLumi <<
"\n" 847 <<
"# streamBeginLumi " << Phase::streamBeginLumi <<
"\n" 849 <<
"# clearEvent " << Phase::clearEvent <<
"\n" 850 <<
"# streamEndLumi " << Phase::streamEndLumi <<
"\n" 851 <<
"# globalEndLumi " << Phase::globalEndLumi <<
"\n" 852 <<
"# globalWriteLumi " << Phase::globalWriteLumi <<
"\n" 853 <<
"# streamEndRun " << Phase::streamEndRun <<
"\n" 854 <<
"# globalEndRun " << Phase::globalEndRun <<
"\n" 855 <<
"# globalWriteRun " << Phase::globalWriteRun <<
"\n" 856 <<
"# endProcessBlock " << Phase::endProcessBlock <<
"\n" 857 <<
"# writeProcessBlock " << Phase::writeProcessBlock <<
"\n" 858 <<
"# endStream " << Phase::endStream <<
"\n" 859 <<
"# endJob " << Phase::endJob <<
"\n" 860 <<
"# destruction " << Phase::destruction <<
"\n\n";
861 oss <<
"# Step Symbol Entries\n" 862 <<
"# -------------------------- ------ ------------------------------------------\n" 863 <<
"# preSourceTransition " << Step::preSourceTransition
864 <<
" <Transition type> <Transition ID> <Time since begin of cmsRun (us)>\n" 865 <<
"# postSourceTransition " << Step::postSourceTransition
866 <<
" <Transition type> <Transition ID> <Time since begin of cmsRun (us)>\n" 867 <<
"# preModulePrefetching " << Step::preModulePrefetching
868 <<
" <Transition type> <Transition ID> <EDModule ID> <Call ID> <Requesting EDModule ID or 0> <Requesting " 869 "Call ID> <Time since begin of " 872 <<
"# postModulePrefetching " << Step::postModulePrefetching
873 <<
" <Transition type> <Transition ID> <EDModule ID> <Call ID> <Requesting EDModule ID or 0> <Requesting " 874 "Call ID> <Time since begin of " 877 <<
"# preModuleEventAcquire " << Step::preModuleEventAcquire
878 <<
" <Transition type> <Transition ID> <EDModule ID> <Call ID> <Requesting EDModule ID or 0> <Requesting " 879 "Call ID> <Time since begin of " 882 <<
"# postModuleEventAcquire " << Step::postModuleEventAcquire
883 <<
" <Transition type> <Transition ID> <EDModule ID> <Call ID> <Requesting EDModule ID or 0> <Requesting " 884 "Call ID> <Time since begin of " 887 <<
"# preModuleTransition " << Step::preModuleTransition
888 <<
" <Transition type> <Transition ID> <EDModule ID> <Call ID> <Requesting EDModule ID or 0> <Requesting " 889 "Call ID> <Time since begin of " 892 <<
"# preEventReadFromSource " << Step::preEventReadFromSource
893 <<
" <Transition type> <Transition ID> <EDModule ID> <Call ID> <Requesting EDModule ID or 0> <Requesting " 894 "Call ID> <Time since begin of " 897 <<
"# postEventReadFromSource " << Step::postEventReadFromSource
898 <<
" <Transition type> <Transition ID> <EDModule ID> <Call ID> <Requesting EDModule ID or 0> <Requesting " 899 "Call ID> <Time since begin of " 902 <<
"# postModuleTransition " << Step::postModuleTransition
903 <<
" <Transition type> <Transition ID> <EDModule ID> <Call ID> <Requesting EDModule ID> <Requesting Call ID> " 904 "<Time since begin of cmsRun " 906 <<
"# preESModulePrefetching " << Step::preESModulePrefetching
907 <<
" <Transition type> <Transition ID> <ESModule ID> <Record ID> <Call ID> <Requesting module ID (+ED, -ES)> " 908 "<Requesting Call ID> " 910 "since of cmsRun (us)>\n" 911 <<
"# postESModulePrefetching " << Step::postESModulePrefetching
912 <<
" <Transition type> <Transition ID> <ESModule ID> <Record ID> <Call ID> <Requesting module ID (+ED, -ES)> " 913 "<Requesting Call ID> " 915 "since of cmsRun (us)>\n" 916 <<
"# preESModuleTransition " << Step::preESModule
917 <<
" <TransitionType> <Transition ID> <ESModule ID> <Record ID> <Call ID> <Requesting module ID (+ED, -ES)> " 918 "<Requesting Call ID> " 920 "since of cmsRun (us)>\n" 921 <<
"# postESModuleTransition " << Step::postESModule
922 <<
" <TransitionType> <Transition ID> <ESModule ID> <Record ID> <Call ID> <Requesting module ID (+ED, -ES)> " 923 "<Requesting Call ID> " 925 "since of cmsRun (us)>\n" 926 <<
"# preFrameworkTransition " << Step::preFrameworkTransition
927 <<
" <Transition type> <Transition ID> <Run#> <LumiBlock#> <Event #> <Time since begin of cmsRun (ms)>\n" 928 <<
"# postFrameworkTransition " << Step::postFrameworkTransition
929 <<
" <Transition type> <Transition ID> <Run#> <LumiBlock#> <Event #> <Time since begin of cmsRun (ms)>\n";
const TypeTag & type() const
void watchPostModuleGlobalEndLumi(PostModuleGlobalEndLumi::slot_type const &iSlot)
void watchPostModuleConstruction(PostModuleConstruction::slot_type const &iSlot)
void watchPreModuleGlobalBeginRun(PreModuleGlobalBeginRun::slot_type const &iSlot)
void watchPreEvent(PreEvent::slot_type const &iSlot)
void watchPostESModuleRegistration(PostESModuleRegistration::slot_type const &iSlot)
ModuleDescription const * moduleDescription() const
void watchPreModuleStreamPrefetching(PreModuleStreamPrefetching::slot_type const &iSlot)
void watchPreAccessInputProcessBlock(PreAccessInputProcessBlock::slot_type const &iSlot)
LuminosityBlockNumber_t luminosityBlock() const
ModuleCallingContext const * moduleCallingContext() const
void watchPostModuleEndProcessBlock(PostModuleEndProcessBlock::slot_type const &iSlot)
void watchPostModuleTransformAcquiring(PostModuleTransformAcquiring::slot_type const &iSlot)
void watchPreESModule(PreESModule::slot_type const &iSlot)
void watchPreModuleEventAcquire(PreModuleEventAcquire::slot_type const &iSlot)
void watchPostEndJob(PostEndJob::slot_type const &iSlot)
void watchPostModuleEndStream(PostModuleEndStream::slot_type const &iSlot)
auto module_id(edm::ModuleCallingContext const &mcc)
void watchPreModuleEvent(PreModuleEvent::slot_type const &iSlot)
void watchPreModuleConstruction(PreModuleConstruction::slot_type const &iSlot)
void watchPreModuleEndProcessBlock(PreModuleEndProcessBlock::slot_type const &iSlot)
void watchPreGlobalEndLumi(PreGlobalEndLumi::slot_type const &iSlot)
void watchPostESModuleAcquire(PostESModuleAcquire::slot_type const &iSlot)
ModuleCallingContext const * getTopModuleCallingContext() const
void watchPostEvent(PostEvent::slot_type const &iSlot)
void watchPreStreamEndRun(PreStreamEndRun::slot_type const &iSlot)
void watchPreSourceConstruction(PreSourceConstruction::slot_type const &iSlot)
void watchPostSourceConstruction(PostSourceConstruction::slot_type const &iSlot)
void watchPostModuleGlobalPrefetching(PostModuleGlobalPrefetching::slot_type const &iSlot)
void watchPostStreamEndLumi(PostStreamEndLumi::slot_type const &iSlot)
void watchPreGlobalBeginLumi(PreGlobalBeginLumi::slot_type const &iSlot)
void watchPostSourceNextTransition(PostSourceNextTransition::slot_type const &iSlot)
void watchPostEndProcessBlock(PostEndProcessBlock::slot_type const &iSlot)
void watchPreEventReadFromSource(PreEventReadFromSource::slot_type const &iSlot)
void watchPreModuleDestruction(PreModuleDestruction::slot_type const &iSlot)
void watchPostESModulePrefetching(PostESModulePrefetching::slot_type const &iSlot)
void watchPostModuleEvent(PostModuleEvent::slot_type const &iSlot)
void watchPostModuleGlobalBeginLumi(PostModuleGlobalBeginLumi::slot_type const &iSlot)
void watchPostModuleStreamEndLumi(PostModuleStreamEndLumi::slot_type const &iSlot)
void watchPostGlobalBeginLumi(PostGlobalBeginLumi::slot_type const &iSlot)
void watchPostModuleStreamBeginRun(PostModuleStreamBeginRun::slot_type const &iSlot)
void watchPostSourceEvent(PostSourceEvent::slot_type const &iSlot)
void watchPreModuleAccessInputProcessBlock(PreModuleAccessInputProcessBlock::slot_type const &iSlot)
void watchPostModuleTransformPrefetching(PostModuleTransformPrefetching::slot_type const &iSlot)
void watchPreBeginProcessBlock(PreBeginProcessBlock::slot_type const &iSlot)
ESModuleCallingContext const * esmoduleCallingContext() const
void watchPreEndProcessBlock(PreEndProcessBlock::slot_type const &iSlot)
void watchPostModuleTransform(PostModuleTransform::slot_type const &iSlot)
void watchPreModuleBeginStream(PreModuleBeginStream::slot_type const &iSlot)
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
void watchPostESModule(PostESModule::slot_type const &iSlot)
void watchPreESSyncIOV(PreESSyncIOV::slot_type const &iSlot)
void watchPreStreamEndLumi(PreStreamEndLumi::slot_type const &iSlot)
void watchPreModuleGlobalEndRun(PreModuleGlobalEndRun::slot_type const &iSlot)
void watchPreModuleEventPrefetching(PreModuleEventPrefetching::slot_type const &iSlot)
void watchPostModuleWriteRun(PostModuleWriteRun::slot_type const &iSlot)
void watchPostModuleWriteProcessBlock(PostModuleWriteProcessBlock::slot_type const &iSlot)
void watchPostModuleWriteLumi(PostModuleWriteLumi::slot_type const &iSlot)
LuminosityBlockNumber_t luminosityBlock() const
void watchPostModuleEventPrefetching(PostModuleEventPrefetching::slot_type const &iSlot)
void setupFile(std::string const &iFileName, edm::ActivityRegistry &iRegistry)
void watchPreOpenFile(PreOpenFile::slot_type const &iSlot)
std::type_info const & value() const
void watchPostGlobalBeginRun(PostGlobalBeginRun::slot_type const &iSlot)
void watchPreGlobalEndRun(PreGlobalEndRun::slot_type const &iSlot)
void watchPostBeginProcessBlock(PostBeginProcessBlock::slot_type const &iSlot)
void watchEventSetupConfiguration(EventSetupConfiguration::slot_type const &iSlot)
void watchPostSourceRun(PostSourceRun::slot_type const &iSlot)
void watchPostStreamBeginLumi(PostStreamBeginLumi::slot_type const &iSlot)
void watchPreSourceLumi(PreSourceLumi::slot_type const &iSlot)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
void watchPreModuleEventDelayedGet(PreModuleEventDelayedGet::slot_type const &iSlot)
void watchPreModuleBeginProcessBlock(PreModuleBeginProcessBlock::slot_type const &iSlot)
void watchPostModuleEventAcquire(PostModuleEventAcquire::slot_type const &iSlot)
std::uintptr_t callID() const
void watchPreModuleEndJob(PreModuleEndJob::slot_type const &iSlot)
def template(fileName, svg, replaceme="REPLACEME")
void watchPostGlobalEndLumi(PostGlobalEndLumi::slot_type const &iSlot)
void watchPreSourceNextTransition(PreSourceNextTransition::slot_type const &iSlot)
ModuleCallingContext const * moduleCallingContext() const
void watchPreWriteProcessBlock(PreWriteProcessBlock::slot_type const &iSlot)
Transition transition() const
void watchPreSourceRun(PreSourceRun::slot_type const &iSlot)
LuminosityBlockIndex const & luminosityBlockIndex() const
auto module_callid(edm::ModuleCallingContext const &mcc)
std::ostream & operator<<(std::ostream &os, SimpleMemoryCheck::SignificantEvent const &se)
void watchPreModuleBeginJob(PreModuleBeginJob::slot_type const &iSlot)
void watchPreModuleTransformAcquiring(PreModuleTransformAcquiring::slot_type const &iSlot)
void watchPostStreamEndRun(PostStreamEndRun::slot_type const &iSlot)
LuminosityBlockID const & luminosityBlockID() const
void watchPreModuleGlobalBeginLumi(PreModuleGlobalBeginLumi::slot_type const &iSlot)
void watchPostModuleStreamEndRun(PostModuleStreamEndRun::slot_type const &iSlot)
void watchPostModuleBeginProcessBlock(PostModuleBeginProcessBlock::slot_type const &iSlot)
void watchPreGlobalBeginRun(PreGlobalBeginRun::slot_type const &iSlot)
void watchPreModuleStreamBeginLumi(PreModuleStreamBeginLumi::slot_type const &iSlot)
void watchPreGlobalWriteLumi(PreGlobalWriteLumi::slot_type const &iSlot)
void watchPreModuleTransformPrefetching(PreModuleTransformPrefetching::slot_type const &iSlot)
void moduleIdToLabel(std::ostream &oStream, std::vector< std::string > const &iModuleLabels, char moduleIdSymbol, std::string const &iIDHeader, std::string const &iLabelHeader)
void watchPostModuleBeginStream(PostModuleBeginStream::slot_type const &iSlot)
void watchPreModuleTransform(PreModuleTransform::slot_type const &iSlot)
void watchPostAccessInputProcessBlock(PostAccessInputProcessBlock::slot_type const &iSlot)
void watchPostSourceLumi(PostSourceLumi::slot_type const &iSlot)
void watchPostModuleEventDelayedGet(PostModuleEventDelayedGet::slot_type const &iSlot)
void watchPostModuleGlobalEndRun(PostModuleGlobalEndRun::slot_type const &iSlot)
void watchPostGlobalWriteRun(PostGlobalWriteRun::slot_type const &iSlot)
void watchPostModuleStreamBeginLumi(PostModuleStreamBeginLumi::slot_type const &iSlot)
void watchESSyncIOVQueuing(ESSyncIOVQueuing::slot_type const &iSlot)
void watchPreModuleStreamEndLumi(PreModuleStreamEndLumi::slot_type const &iSlot)
void watchPreModuleStreamBeginRun(PreModuleStreamBeginRun::slot_type const &iSlot)
std::enable_if_t< std::is_integral< T >::value > concatenate(std::ostream &os, T const t)
void watchPostClearEvent(PostClearEvent::slot_type const &iSlot)
void watchPostGlobalEndRun(PostGlobalEndRun::slot_type const &iSlot)
void watchPreStreamBeginLumi(PreStreamBeginLumi::slot_type const &iSlot)
void watchPostOpenFile(PostOpenFile::slot_type const &iSlot)
void watchPreModuleEndStream(PreModuleEndStream::slot_type const &iSlot)
void watchPreBeginJob(PreBeginJob::slot_type const &iSlot)
convenience function for attaching to signal
void watchPreModuleWriteRun(PreModuleWriteRun::slot_type const &iSlot)
void watchPreEndJob(PreEndJob::slot_type const &iSlot)
Transition transition() const
void watchPostStreamBeginRun(PostStreamBeginRun::slot_type const &iSlot)
void watchPreClearEvent(PreClearEvent::slot_type const &iSlot)
void watchPostGlobalWriteLumi(PostGlobalEndLumi::slot_type const &iSlot)
RunIndex const & runIndex() const
void watchPreStreamBeginRun(PreStreamBeginRun::slot_type const &iSlot)
void watchPostModuleAccessInputProcessBlock(PostModuleAccessInputProcessBlock::slot_type const &iSlot)
void watchPostModuleDestruction(PostModuleDestruction::slot_type const &iSlot)
void watchPreModuleStreamEndRun(PreModuleStreamEndRun::slot_type const &iSlot)
void watchPreModuleWriteProcessBlock(PreModuleWriteProcessBlock::slot_type const &iSlot)
EventID const & eventID() const
void watchPostModuleBeginJob(PostModuleBeginJob::slot_type const &iSlot)
void watchPostEventReadFromSource(PostEventReadFromSource::slot_type const &iSlot)
void watchPostModuleGlobalBeginRun(PostModuleGlobalBeginRun::slot_type const &iSlot)
void watchPreModuleWriteLumi(PreModuleWriteLumi::slot_type const &iSlot)
void watchPreSourceEvent(PreSourceEvent::slot_type const &iSlot)
static std::chrono::steady_clock::time_point jobStartTime()
void watchPreESModulePrefetching(PreESModulePrefetching::slot_type const &iSlot)
void watchPostModuleStreamPrefetching(PostModuleStreamPrefetching::slot_type const &iSlot)
std::string const & moduleLabel() const
auto stream_id(edm::StreamContext const &cs)
void watchPreGlobalWriteRun(PreGlobalWriteRun::slot_type const &iSlot)
void watchPostModuleEndJob(PostModuleEndJob::slot_type const &iSlot)
void watchPreModuleGlobalPrefetching(PreModuleGlobalPrefetching::slot_type const &iSlot)
edm::eventsetup::ComponentDescription const * componentDescription() const
EventNumber_t event() const
void watchPreModuleGlobalEndLumi(PreModuleGlobalEndLumi::slot_type const &iSlot)
void watchPreESModuleAcquire(PreESModuleAcquire::slot_type const &iSlot)
std::uintptr_t callID() const
ParentContext const & parent() const
void watchPostBeginJob(PostBeginJob::slot_type const &iSlot)
convenience function for attaching to signal
void watchPostESSyncIOV(PostESSyncIOV::slot_type const &iSlot)
void watchPostWriteProcessBlock(PostWriteProcessBlock::slot_type const &iSlot)