37 using duration_t = std::chrono::microseconds;
38 using clock_t = std::chrono::steady_clock;
42 preSourceTransition =
'S',
43 postSourceTransition =
's',
44 preModuleEventAcquire =
'A',
45 postModuleEventAcquire =
'a',
46 preModuleTransition =
'M',
47 preEventReadFromSource =
'R',
48 postEventReadFromSource =
'r',
49 preModuleEventDelayedGet =
'D',
50 postModuleEventDelayedGet =
'd',
51 postModuleTransition =
'm',
54 preESModuleAcquire =
'B',
55 postESModuleAcquire =
'b',
56 preFrameworkTransition =
'F',
57 postFrameworkTransition =
'f' 62 case Step::postSourceTransition:
63 case Step::postModuleEventAcquire:
64 case Step::postEventReadFromSource:
65 case Step::postModuleEventDelayedGet:
66 case Step::postModuleTransition:
67 case Step::postESModule:
68 case Step::postESModuleAcquire:
69 case Step::postFrameworkTransition:
81 writeProcessBlock = -10,
95 accessInputProcessBlock = 8,
96 beginProcessBlock = 9,
102 getNextTransition = 15,
108 os << static_cast<std::underlying_type_t<Step>>(
s);
113 os << static_cast<std::underlying_type_t<Phase>>(
s);
117 template <
Step S,
typename... ARGS>
119 std::ostringstream oss;
126 template <
Step S,
typename... ARGS>
128 std::ostringstream oss;
133 info.nDeallocations_,
137 info.maxSingleAlloc_);
146 return Phase::beginStream;
148 return Phase::streamBeginRun;
150 return Phase::streamBeginLumi;
154 return Phase::streamEndLumi;
156 return Phase::streamEndRun;
158 return Phase::endStream;
166 auto toTransition(
edm::StreamContext const& iContext) -> std::underlying_type_t<Phase> {
167 return static_cast<std::underlying_type_t<Phase>
>(toTransitionImpl(iContext));
174 return Phase::beginProcessBlock;
176 return Phase::accessInputProcessBlock;
178 return Phase::globalBeginRun;
180 return Phase::globalBeginLumi;
182 return Phase::globalEndLumi;
184 return Phase::globalWriteLumi;
186 return Phase::globalEndRun;
188 return Phase::globalWriteRun;
190 return Phase::endProcessBlock;
192 return Phase::writeProcessBlock;
199 auto toTransition(
edm::GlobalContext const& iContext) -> std::underlying_type_t<Phase> {
200 return static_cast<std::underlying_type_t<Phase>
>(toTransitionImpl(iContext));
221 struct ESModuleState {
222 ESModuleState(std::shared_ptr<edm::ThreadSafeOutputFileStream>
logFile,
223 decltype(
now()) beginTime,
224 std::shared_ptr<std::vector<std::type_index>> recordIndices,
226 : logFile_{
logFile}, recordIndices_{recordIndices}, beginTime_{beginTime}, filter_(iFilter) {}
231 auto const t = std::chrono::duration_cast<duration_t>(
now() - beginTime_).
count();
234 unsigned long phaseID = 0xFFFFFFFF;
236 auto global = top->globalContext();
237 phase = toTransition(*global);
238 phaseID = toTransitionIndex(*global);
240 auto stream = top->getStreamContext();
244 auto stream = top->getStreamContext();
248 auto recordIndex = findRecordIndices(iKey);
252 auto msg = assembleAllocMessage<S>(
258 auto msg = assembleMessage<S>(
268 auto itFind =
std::find(recordIndices_->begin(), recordIndices_->end(),
index);
269 return itFind - recordIndices_->begin();
272 std::shared_ptr<edm::ThreadSafeOutputFileStream> logFile_;
273 std::shared_ptr<std::vector<std::type_index>> recordIndices_;
274 decltype(
now()) beginTime_;
279 struct GlobalEDModuleState {
280 GlobalEDModuleState(std::shared_ptr<edm::ThreadSafeOutputFileStream>
logFile,
281 decltype(
now()) beginTime,
283 : logFile_{
logFile}, beginTime_{beginTime}, filter_(iFilter) {}
287 auto const t = std::chrono::duration_cast<duration_t>(
now() - beginTime_).
count();
305 std::shared_ptr<edm::ThreadSafeOutputFileStream> logFile_;
306 decltype(
now()) beginTime_;
311 struct StreamEDModuleState {
312 StreamEDModuleState(std::shared_ptr<edm::ThreadSafeOutputFileStream>
logFile,
313 decltype(
now()) beginTime,
315 : logFile_{
logFile}, beginTime_{beginTime}, filter_(iFilter) {}
319 auto const t = std::chrono::duration_cast<duration_t>(
now() - beginTime_).
count();
338 std::shared_ptr<edm::ThreadSafeOutputFileStream> logFile_;
339 decltype(
now()) beginTime_;
343 struct ModuleCtrDtr {
344 long long beginConstruction = 0;
345 long long endConstruction = 0;
347 long long beginDestruction = 0;
348 long long endDestruction = 0;
355 auto beginModuleAlloc =
now();
358 if (iFileName.empty()) {
362 auto logFile = std::make_shared<edm::ThreadSafeOutputFileStream>(iFileName);
366 auto esModuleLabelsPtr = std::make_shared<std::vector<std::string>>();
367 auto& esModuleLabels = *esModuleLabelsPtr;
370 if (esModuleLabels.size() <= iDescription.id_ + 1) {
371 esModuleLabels.resize(iDescription.id_ + 2);
374 if (not iDescription.label_.empty()) {
375 esModuleLabels[iDescription.id_ + 1] = iDescription.label_;
377 esModuleLabels[iDescription.id_ + 1] = iDescription.type_;
380 auto moduleCtrDtrPtr = std::make_shared<std::vector<ModuleCtrDtr>>();
381 auto& moduleCtrDtr = *moduleCtrDtrPtr;
382 auto moduleLabelsPtr = std::make_shared<std::vector<std::string>>();
383 auto& moduleLabels = *moduleLabelsPtr;
385 [&moduleLabels, &moduleCtrDtr, beginTime, iFilter](
ModuleDescription const& md) {
386 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
388 auto const mid = md.
id();
389 if (mid < moduleLabels.size()) {
391 moduleCtrDtr[mid].beginConstruction =
t;
393 moduleLabels.resize(mid + 1);
395 moduleCtrDtr.resize(mid + 1);
396 moduleCtrDtr.back().beginConstruction =
t;
401 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
402 moduleCtrDtr[md.
id()].endConstruction =
t;
405 moduleCtrDtr[md.
id()].constructionAllocInfo = *alloc;
409 auto addDataInDtr = std::make_shared<bool>(
false);
411 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
414 auto bmsg = assembleMessage<Step::preModuleTransition>(
415 static_cast<std::underlying_type_t<Phase>
>(Phase::destruction), 0, md.
id(), 0, 0, 0,
t);
419 moduleCtrDtr[md.
id()].beginDestruction =
t;
424 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
425 if (not *addDataInDtr) {
426 moduleCtrDtr[md.
id()].endDestruction =
t;
432 auto emsg = assembleAllocMessage<Step::postModuleTransition>(
433 *
info,
static_cast<std::underlying_type_t<Phase>
>(Phase::destruction), 0, md.
id(), 0, 0, 0,
t);
438 moduleCtrDtr[md.
id()].destructionAllocInfo = *
info;
443 auto sourceCtrPtr = std::make_shared<ModuleCtrDtr>();
444 auto& sourceCtr = *sourceCtrPtr;
446 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
447 sourceCtr.beginConstruction =
t;
451 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
452 sourceCtr.endConstruction =
t;
455 sourceCtr.constructionAllocInfo = *
info;
459 auto recordIndices = std::make_shared<std::vector<std::type_index>>();
461 [
logFile, recordIndices](
auto const& recordsToResolvers,
auto const&)
mutable {
462 std::ostringstream oss;
464 auto recordKeys = recordsToResolvers.recordKeys();
465 std::sort(recordKeys.begin(), recordKeys.end());
466 std::vector<std::string> recordNames;
468 recordNames.reserve(recordKeys.size() + 1);
469 recordNames.emplace_back(
"");
470 recordIndices->reserve(recordKeys.size() + 1);
471 recordIndices->push_back(std::type_index(
typeid(
void)));
472 for (
auto const& r : recordKeys) {
473 recordNames.push_back(r.name());
474 recordIndices->push_back(std::type_index(r.type().value()));
489 addDataInDtr](
auto&,
auto&)
mutable {
490 *addDataInDtr =
true;
492 std::ostringstream oss;
493 moduleIdToLabel(oss, *moduleLabelsPtr,
'M',
"EDModule ID",
"Module label");
495 moduleLabelsPtr.reset();
498 std::ostringstream oss;
499 moduleIdToLabel(oss, *esModuleLabelsPtr,
'N',
"ESModule ID",
"ESModule label");
501 esModuleLabelsPtr.reset();
504 auto const moduleAllocStart = duration_cast<duration_t>(beginModuleAlloc - beginTime).
count();
505 auto msg = assembleMessage<Step::preFrameworkTransition>(
506 static_cast<std::underlying_type_t<Phase>
>(Phase::startTracing), 0, 0, 0, 0, moduleAllocStart);
510 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
511 auto msg = assembleMessage<Step::preFrameworkTransition>(
512 static_cast<std::underlying_type_t<Phase>
>(
Phase::beginJob), 0, 0, 0, 0,
t);
518 auto srcBeginConstruction = sourceCtrPtr->beginConstruction;
519 auto srcEndConstruction = sourceCtrPtr->endConstruction;
520 auto srcAllocInfo = sourceCtrPtr->constructionAllocInfo;
521 sourceCtrPtr.reset();
523 [&srcBeginConstruction, &srcEndConstruction, &
logFile, &srcAllocInfo](
long long iTime)
mutable {
524 if (srcBeginConstruction != 0 and srcBeginConstruction < iTime) {
525 auto bmsg = assembleMessage<Step::preSourceTransition>(
526 static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0, srcBeginConstruction);
528 srcBeginConstruction = 0;
530 if (srcEndConstruction != 0 and srcEndConstruction < iTime) {
531 auto bmsg = assembleAllocMessage<Step::postSourceTransition>(
532 srcAllocInfo,
static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0, srcEndConstruction);
534 srcEndConstruction = 0;
538 std::sort(moduleCtrDtrPtr->begin(), moduleCtrDtrPtr->end(), [](
auto const&
l,
auto const& r) {
539 return l.beginConstruction < r.beginConstruction;
542 for (
auto const&
ctr : *moduleCtrDtrPtr) {
543 if (
ctr.beginConstruction != 0) {
544 handleSource(
ctr.beginConstruction);
546 auto bmsg = assembleMessage<Step::preModuleTransition>(
547 static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0,
id, 0,
ctr.beginConstruction);
550 handleSource(
ctr.endConstruction);
552 auto const& allocInfo =
ctr.constructionAllocInfo;
553 auto emsg = assembleAllocMessage<Step::postModuleTransition>(
555 static_cast<std::underlying_type_t<Phase>
>(Phase::construction),
559 ctr.endConstruction);
566 std::sort(moduleCtrDtrPtr->begin(), moduleCtrDtrPtr->end(), [](
auto const&
l,
auto const& r) {
567 return l.beginDestruction < r.beginDestruction;
569 for (
auto const& dtr : *moduleCtrDtrPtr) {
570 if (dtr.beginDestruction != 0) {
571 handleSource(dtr.beginDestruction);
573 auto bmsg = assembleMessage<Step::preModuleTransition>(
574 static_cast<std::underlying_type_t<Phase>
>(Phase::destruction), 0,
id, 0, 0, 0, dtr.beginDestruction);
577 handleSource(dtr.endDestruction);
579 auto emsg = assembleAllocMessage<Step::postModuleTransition>(
580 dtr.destructionAllocInfo,
581 static_cast<std::underlying_type_t<Phase>
>(Phase::destruction),
593 moduleCtrDtrPtr.reset();
595 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
597 auto msg = assembleMessage<Step::preFrameworkTransition>(
598 static_cast<std::underlying_type_t<Phase>
>(
Phase::beginJob), 0, 0, 0, 0,
t);
602 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
603 auto msg = assembleMessage<Step::postFrameworkTransition>(
604 static_cast<std::underlying_type_t<Phase>
>(
Phase::beginJob), 0, 0, 0, 0,
t);
609 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
610 auto msg = assembleMessage<Step::preFrameworkTransition>(
611 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, 0, 0, 0,
t);
615 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
616 auto msg = assembleMessage<Step::postFrameworkTransition>(
617 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, 0, 0, 0,
t);
622 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
623 auto msg = assembleMessage<Step::preFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(
Phase::Event),
632 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
634 assembleMessage<Step::postFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(
Phase::Event),
645 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
647 assembleMessage<Step::preFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(Phase::clearEvent),
659 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
660 auto msg = assembleAllocMessage<Step::postFrameworkTransition>(
662 static_cast<std::underlying_type_t<Phase>
>(Phase::clearEvent),
674 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
675 auto msg = assembleMessage<Step::preFrameworkTransition>(toTransition(gc),
676 toTransitionIndex(gc),
696 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
697 auto msg = assembleMessage<Step::postFrameworkTransition>(toTransition(gc),
698 toTransitionIndex(gc),
718 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
719 auto msg = assembleMessage<Step::preFrameworkTransition>(
730 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
731 auto msg = assembleMessage<Step::postFrameworkTransition>(
743 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
744 auto msg = assembleMessage<Step::preSourceTransition>(
745 static_cast<std::underlying_type_t<Phase>
>(Phase::openFile), 0,
t);
752 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
753 auto msg = assembleAllocMessage<Step::postSourceTransition>(
754 *
info,
static_cast<std::underlying_type_t<Phase>
>(Phase::openFile), 0,
t);
760 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
761 auto msg = assembleMessage<Step::preSourceTransition>(
769 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
770 auto msg = assembleAllocMessage<Step::postSourceTransition>(
778 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
779 auto msg = assembleMessage<Step::preSourceTransition>(
780 static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginRun),
id.
value(),
t);
787 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
788 auto msg = assembleAllocMessage<Step::postSourceTransition>(
789 *
info,
static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginRun),
id.
value(),
t);
796 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
797 auto msg = assembleMessage<Step::preSourceTransition>(
798 static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginLumi),
id.
value(),
t);
805 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
806 auto msg = assembleAllocMessage<Step::postSourceTransition>(
807 *
info,
static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginLumi),
id.
value(),
t);
814 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
815 auto msg = assembleMessage<Step::preSourceTransition>(
816 static_cast<std::underlying_type_t<Phase>
>(Phase::getNextTransition),
t);
823 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
824 auto msg = assembleAllocMessage<Step::postSourceTransition>(
825 *
info,
static_cast<std::underlying_type_t<Phase>
>(Phase::getNextTransition),
t);
833 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
834 auto msg = assembleMessage<Step::preModuleTransition>(
842 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
843 auto msg = assembleAllocMessage<Step::postModuleTransition>(
851 StreamEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
858 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
859 auto msg = assembleMessage<Step::preModuleTransition>(
860 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, md.
id(), 0,
t);
867 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
868 auto msg = assembleAllocMessage<Step::postModuleTransition>(
869 *
info,
static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, md.
id(), 0,
t);
877 StreamEDModuleState<Step::preModuleEventAcquire>(
logFile, beginTime, iFilter));
879 StreamEDModuleState<Step::postModuleEventAcquire>(
logFile, beginTime, iFilter));
881 StreamEDModuleState<Step::preModuleEventDelayedGet>(
logFile, beginTime, iFilter));
883 StreamEDModuleState<Step::postModuleEventDelayedGet>(
logFile, beginTime, iFilter));
885 StreamEDModuleState<Step::preEventReadFromSource>(
logFile, beginTime, iFilter));
887 StreamEDModuleState<Step::postEventReadFromSource>(
logFile, beginTime, iFilter));
892 StreamEDModuleState<Step::preModuleEventAcquire>(
logFile, beginTime, iFilter));
894 StreamEDModuleState<Step::postModuleEventAcquire>(
logFile, beginTime, iFilter));
897 StreamEDModuleState<Step::preModuleTransition>(
logFile, beginTime, iFilter));
899 StreamEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
902 StreamEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
905 StreamEDModuleState<Step::preModuleTransition>(
logFile, beginTime, iFilter));
907 StreamEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
909 StreamEDModuleState<Step::preModuleTransition>(
logFile, beginTime, iFilter));
911 StreamEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
914 GlobalEDModuleState<Step::preModuleTransition>(
logFile, beginTime, iFilter));
916 GlobalEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
918 GlobalEDModuleState<Step::preModuleTransition>(
logFile, beginTime, iFilter));
920 GlobalEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
922 GlobalEDModuleState<Step::preModuleTransition>(
logFile, beginTime, iFilter));
924 GlobalEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
927 GlobalEDModuleState<Step::preModuleTransition>(
logFile, beginTime, iFilter));
929 GlobalEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
932 GlobalEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
935 GlobalEDModuleState<Step::preModuleTransition>(
logFile, beginTime, iFilter));
937 GlobalEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
939 GlobalEDModuleState<Step::preModuleTransition>(
logFile, beginTime, iFilter));
941 GlobalEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
944 GlobalEDModuleState<Step::preModuleTransition>(
logFile, beginTime, iFilter));
946 GlobalEDModuleState<Step::postModuleTransition>(
logFile, beginTime, iFilter));
958 ESModuleState<Step::preESModuleAcquire>(
logFile, beginTime, recordIndices, iFilter));
960 ESModuleState<Step::postESModuleAcquire>(
logFile, beginTime, recordIndices, iFilter));
963 std::ostringstream oss;
964 oss <<
"# Transition Type Symbol\n";
965 oss <<
"#------------------------ ------\n";
966 oss <<
"# startTracing " << Phase::startTracing <<
"\n" 967 <<
"# construction " << Phase::construction <<
"\n" 968 <<
"# getNextTransition " << Phase::getNextTransition <<
"\n" 970 <<
"# beginStream " << Phase::beginStream <<
"\n" 971 <<
"# openFile " << Phase::openFile <<
"\n" 972 <<
"# beginProcessBlock " << Phase::beginProcessBlock <<
"\n" 973 <<
"# accessInputProcessBlock " << Phase::accessInputProcessBlock <<
"\n" 974 <<
"# globalBeginRun " << Phase::globalBeginRun <<
"\n" 975 <<
"# streamBeginRun " << Phase::streamBeginRun <<
"\n" 976 <<
"# globalBeginLumi " << Phase::globalBeginLumi <<
"\n" 977 <<
"# streamBeginLumi " << Phase::streamBeginLumi <<
"\n" 979 <<
"# clearEvent " << Phase::clearEvent <<
"\n" 980 <<
"# streamEndLumi " << Phase::streamEndLumi <<
"\n" 981 <<
"# globalEndLumi " << Phase::globalEndLumi <<
"\n" 982 <<
"# globalWriteLumi " << Phase::globalWriteLumi <<
"\n" 983 <<
"# streamEndRun " << Phase::streamEndRun <<
"\n" 984 <<
"# globalEndRun " << Phase::globalEndRun <<
"\n" 985 <<
"# globalWriteRun " << Phase::globalWriteRun <<
"\n" 986 <<
"# endProcessBlock " << Phase::endProcessBlock <<
"\n" 987 <<
"# writeProcessBlock " << Phase::writeProcessBlock <<
"\n" 988 <<
"# endStream " << Phase::endStream <<
"\n" 989 <<
"# endJob " << Phase::endJob <<
"\n" 990 <<
"# destruction " << Phase::destruction <<
"\n\n";
991 constexpr std::string_view kTransition =
" <Transition type> <Transition ID>";
992 constexpr std::string_view kTransitionInfo =
" <Run #> <LumiBlock #> <Event #>";
993 constexpr std::string_view kTime =
" <Time since begin of cmsRun (us)>";
994 constexpr std::string_view kEDModule =
" <EDModule ID> <Call ID>";
995 constexpr std::string_view kESModule =
" <ESModule ID> <Record ID> <Call ID>";
997 " <# allocs> <# deallocs> <additional bytes> <min bytes> <max bytes> <max allocation bytes>";
999 oss <<
"# Step Symbol Entries\n" 1000 <<
"# -------------------------- ------ ------------------------------------------\n" 1001 <<
"# preSourceTransition " << Step::preSourceTransition << kTransition << kTime <<
"\n" 1002 <<
"# postSourceTransition " << Step::postSourceTransition << kTransition << kTime <<
" " << kAllocInfo
1004 <<
"# preModuleEventAcquire " << Step::preModuleEventAcquire << kTransition << kEDModule << kTime
1006 <<
"# postModuleEventAcquire " << Step::postModuleEventAcquire << kTransition << kEDModule << kTime
1007 << kAllocInfo <<
"\n" 1008 <<
"# preModuleTransition " << Step::preModuleTransition << kTransition << kEDModule << kTime <<
"\n" 1009 <<
"# preEventReadFromSource " << Step::preEventReadFromSource << kTransition << kEDModule << kTime
1011 <<
"# postEventReadFromSource " << Step::postEventReadFromSource << kTransition << kEDModule << kTime
1012 << kAllocInfo <<
"\n" 1013 <<
"# postModuleTransition " << Step::postModuleTransition << kTransition << kEDModule << kTime
1014 << kAllocInfo <<
"\n" 1015 <<
"# preESModuleTransition " << Step::preESModule << kTransition << kESModule << kTime <<
"\n" 1016 <<
"# postESModuleTransition " << Step::postESModule << kTransition << kESModule << kTime << kAllocInfo
1018 <<
"# preFrameworkTransition " << Step::preFrameworkTransition << kTransition << kTransitionInfo << kTime
1020 <<
"# preFrameworkTransition " << Step::preFrameworkTransition <<
" " 1021 << Phase::clearEvent <<
" <Transition ID>" << kTransitionInfo << kTime << kAllocInfo <<
"\n" 1022 <<
"# postFrameworkTransition " << Step::postFrameworkTransition << kTransition << kTransitionInfo
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)
void watchPreAccessInputProcessBlock(PreAccessInputProcessBlock::slot_type const &iSlot)
LuminosityBlockNumber_t luminosityBlock() 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)
void watchPreModuleEvent(PreModuleEvent::slot_type const &iSlot)
const ThreadAllocInfo * stopOnThread(int moduleID) const
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)
bool startOnThread(int moduleID) const
void watchPreStreamEndRun(PreStreamEndRun::slot_type const &iSlot)
void watchPreSourceConstruction(PreSourceConstruction::slot_type const &iSlot)
void watchPostSourceConstruction(PostSourceConstruction::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 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 watchPreBeginProcessBlock(PreBeginProcessBlock::slot_type const &iSlot)
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 watchPreStreamEndLumi(PreStreamEndLumi::slot_type const &iSlot)
void watchPreModuleGlobalEndRun(PreModuleGlobalEndRun::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
auto stream_id(edm::StreamContext const &cs)
auto module_callid(edm::ModuleCallingContext const &mcc)
void moduleIdToLabel(std::ostream &oStream, std::vector< std::string > const &iModuleLabels, char moduleIdSymbol, std::string const &iIDHeader, std::string const &iLabelHeader)
void watchPreOpenFile(PreOpenFile::slot_type const &iSlot)
std::type_info const & value() const
void watchPostGlobalBeginRun(PostGlobalBeginRun::slot_type const &iSlot)
std::enable_if_t< std::is_integral< T >::value > concatenate(std::ostream &os, T const t)
void watchPreGlobalEndRun(PreGlobalEndRun::slot_type const &iSlot)
void setupFile(std::string const &iFileName, edm::ActivityRegistry &iRegistry, Filter const *iFilter)
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)
bool keepModuleInfo(int moduleID) const
void watchPreModuleBeginProcessBlock(PreModuleBeginProcessBlock::slot_type const &iSlot)
void watchPostModuleEventAcquire(PostModuleEventAcquire::slot_type const &iSlot)
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)
void watchPreWriteProcessBlock(PreWriteProcessBlock::slot_type const &iSlot)
Transition transition() const
void watchPreSourceRun(PreSourceRun::slot_type const &iSlot)
LuminosityBlockIndex const & luminosityBlockIndex() const
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 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 watchPreModuleStreamEndLumi(PreModuleStreamEndLumi::slot_type const &iSlot)
void watchPreModuleStreamBeginRun(PreModuleStreamBeginRun::slot_type const &iSlot)
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
auto module_id(edm::ModuleCallingContext const &mcc)
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()
std::ostream & operator<<(std::ostream &ost, const HLTGlobalStatus &hlt)
Formatted printout of trigger table.
std::string const & moduleLabel() const
void watchPreGlobalWriteRun(PreGlobalWriteRun::slot_type const &iSlot)
void watchPostModuleEndJob(PostModuleEndJob::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
void watchPostBeginJob(PostBeginJob::slot_type const &iSlot)
convenience function for attaching to signal
void watchPostWriteProcessBlock(PostWriteProcessBlock::slot_type const &iSlot)