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 = -9,
79 accessInputProcessBlock = 7,
80 beginProcessBlock = 8,
90 os << static_cast<std::underlying_type_t<Step>>(
s);
95 os << static_cast<std::underlying_type_t<Phase>>(
s);
99 template <
Step S,
typename... ARGS>
101 std::ostringstream oss;
112 return Phase::beginStream;
114 return Phase::streamBeginRun;
116 return Phase::streamBeginLumi;
120 return Phase::streamEndLumi;
122 return Phase::streamEndRun;
124 return Phase::endStream;
132 auto toTransition(
edm::StreamContext const& iContext) -> std::underlying_type_t<Phase> {
133 return static_cast<std::underlying_type_t<Phase>
>(toTransitionImpl(iContext));
140 return Phase::beginProcessBlock;
142 return Phase::accessInputProcessBlock;
144 return Phase::globalBeginRun;
146 return Phase::globalBeginLumi;
148 return Phase::globalEndLumi;
150 return Phase::globalWriteLumi;
152 return Phase::globalEndRun;
154 return Phase::globalWriteRun;
156 return Phase::endProcessBlock;
158 return Phase::writeProcessBlock;
165 auto toTransition(
edm::GlobalContext const& iContext) -> std::underlying_type_t<Phase> {
166 return static_cast<std::underlying_type_t<Phase>
>(toTransitionImpl(iContext));
185 struct ESModuleState {
186 ESModuleState(std::shared_ptr<edm::ThreadSafeOutputFileStream>
logFile,
187 decltype(
now()) beginTime,
188 std::shared_ptr<std::vector<std::type_index>> recordIndices)
189 : logFile_{
logFile}, recordIndices_{recordIndices}, beginTime_{beginTime} {}
194 auto const t = std::chrono::duration_cast<duration_t>(
now() - beginTime_).
count();
197 unsigned long phaseID = 0xFFFFFFFF;
199 auto global = top->globalContext();
200 phase = toTransition(*global);
201 phaseID = toTransitionIndex(*global);
203 auto stream = top->getStreamContext();
207 auto stream = top->getStreamContext();
211 auto recordIndex = findRecordIndices(iKey);
212 long long requestingModuleID;
219 auto msg = assembleMessage<S>(
227 auto itFind =
std::find(recordIndices_->begin(), recordIndices_->end(),
index);
228 return itFind - recordIndices_->begin();
231 std::shared_ptr<edm::ThreadSafeOutputFileStream> logFile_;
232 std::shared_ptr<std::vector<std::type_index>> recordIndices_;
233 decltype(
now()) beginTime_;
237 struct GlobalEDModuleState {
238 GlobalEDModuleState(std::shared_ptr<edm::ThreadSafeOutputFileStream>
logFile, decltype(
now()) beginTime)
239 : logFile_{
logFile}, beginTime_{beginTime} {}
243 auto const t = std::chrono::duration_cast<duration_t>(
now() - beginTime_).
count();
244 long requestingModuleID = 0;
248 auto msg = assembleMessage<S>(toTransition(gc), toTransitionIndex(gc),
module_id(mcc), requestingModuleID,
t);
253 std::shared_ptr<edm::ThreadSafeOutputFileStream> logFile_;
254 decltype(
now()) beginTime_;
258 struct StreamEDModuleState {
259 StreamEDModuleState(std::shared_ptr<edm::ThreadSafeOutputFileStream>
logFile, decltype(
now()) beginTime)
260 : logFile_{
logFile}, beginTime_{beginTime} {}
264 auto const t = std::chrono::duration_cast<duration_t>(
now() - beginTime_).
count();
265 long requestingModuleID = 0;
274 std::shared_ptr<edm::ThreadSafeOutputFileStream> logFile_;
275 decltype(
now()) beginTime_;
278 struct ModuleCtrDtr {
279 long long beginConstruction = 0;
280 long long endConstruction = 0;
281 long long beginDestruction = 0;
282 long long endDestruction = 0;
288 auto beginTracer =
now();
291 if (iFileName.empty()) {
295 auto logFile = std::make_shared<edm::ThreadSafeOutputFileStream>(iFileName);
299 auto esModuleLabelsPtr = std::make_shared<std::vector<std::string>>();
300 auto& esModuleLabels = *esModuleLabelsPtr;
303 if (esModuleLabels.size() <= iDescription.id_ + 1) {
304 esModuleLabels.resize(iDescription.id_ + 2);
307 if (not iDescription.label_.empty()) {
308 esModuleLabels[iDescription.id_ + 1] = iDescription.label_;
310 esModuleLabels[iDescription.id_ + 1] = iDescription.type_;
313 auto moduleCtrDtrPtr = std::make_shared<std::vector<ModuleCtrDtr>>();
314 auto& moduleCtrDtr = *moduleCtrDtrPtr;
315 auto moduleLabelsPtr = std::make_shared<std::vector<std::string>>();
316 auto& moduleLabels = *moduleLabelsPtr;
318 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
320 auto const mid = md.
id();
321 if (mid < moduleLabels.size()) {
323 moduleCtrDtr[mid].beginConstruction =
t;
325 moduleLabels.resize(mid + 1);
327 moduleCtrDtr.resize(mid + 1);
328 moduleCtrDtr.back().beginConstruction =
t;
332 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
333 moduleCtrDtr[md.
id()].endConstruction =
t;
337 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
338 moduleCtrDtr[md.
id()].beginDestruction =
t;
341 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
342 moduleCtrDtr[md.
id()].endDestruction =
t;
345 auto sourceCtrPtr = std::make_shared<ModuleCtrDtr>();
346 auto& sourceCtr = *sourceCtrPtr;
348 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
349 sourceCtr.beginConstruction =
t;
352 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
353 sourceCtr.endConstruction =
t;
357 auto recordIndices = std::make_shared<std::vector<std::type_index>>();
359 [
logFile, recordIndices](
auto const& recordsToResolvers,
auto const&)
mutable {
360 std::ostringstream oss;
362 auto recordKeys = recordsToResolvers.recordKeys();
363 std::sort(recordKeys.begin(), recordKeys.end());
364 std::vector<std::string> recordNames;
366 recordNames.reserve(recordKeys.size() + 1);
367 recordNames.emplace_back(
"");
368 recordIndices->reserve(recordKeys.size() + 1);
369 recordIndices->push_back(std::type_index(
typeid(
void)));
370 for (
auto const& r : recordKeys) {
371 recordNames.push_back(r.name());
372 recordIndices->push_back(std::type_index(r.type().value()));
380 [
logFile, moduleLabelsPtr, esModuleLabelsPtr, moduleCtrDtrPtr, sourceCtrPtr, beginTime, beginTracer](
381 auto&,
auto&)
mutable {
383 std::ostringstream oss;
384 moduleIdToLabel(oss, *moduleLabelsPtr,
'M',
"EDModule ID",
"Module label");
386 moduleLabelsPtr.reset();
389 std::ostringstream oss;
390 moduleIdToLabel(oss, *esModuleLabelsPtr,
'N',
"ESModule ID",
"ESModule label");
392 esModuleLabelsPtr.reset();
395 auto const tracerStart = duration_cast<duration_t>(beginTracer - beginTime).
count();
396 auto msg = assembleMessage<Step::preFrameworkTransition>(
397 static_cast<std::underlying_type_t<Phase>
>(Phase::startTracing), 0, 0, 0, 0, tracerStart);
402 auto srcBeginConstruction = sourceCtrPtr->beginConstruction;
403 auto srcEndConstruction = sourceCtrPtr->endConstruction;
404 sourceCtrPtr.reset();
405 auto handleSource = [&srcBeginConstruction, &srcEndConstruction, &
logFile](
long long iTime)
mutable {
406 if (srcBeginConstruction != 0 and srcBeginConstruction < iTime) {
407 auto bmsg = assembleMessage<Step::preSourceTransition>(
408 static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0, srcBeginConstruction);
410 srcBeginConstruction = 0;
412 if (srcEndConstruction != 0 and srcEndConstruction < iTime) {
413 auto bmsg = assembleMessage<Step::postSourceTransition>(
414 static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0, srcEndConstruction);
416 srcEndConstruction = 0;
421 for (
auto const&
ctr : *moduleCtrDtrPtr) {
422 if (
ctr.beginConstruction != 0) {
423 handleSource(
ctr.beginConstruction);
424 auto bmsg = assembleMessage<Step::preModuleTransition>(
425 static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0,
id, 0,
ctr.beginConstruction);
427 handleSource(
ctr.endConstruction);
428 auto emsg = assembleMessage<Step::postModuleTransition>(
429 static_cast<std::underlying_type_t<Phase>
>(Phase::construction), 0,
id, 0,
ctr.endConstruction);
435 for (
auto const& dtr : *moduleCtrDtrPtr) {
436 if (dtr.beginDestruction != 0) {
437 handleSource(dtr.beginDestruction);
438 auto bmsg = assembleMessage<Step::preModuleTransition>(
439 static_cast<std::underlying_type_t<Phase>
>(Phase::destruction), 0,
id, 0, dtr.beginDestruction);
441 handleSource(dtr.endDestruction);
442 auto emsg = assembleMessage<Step::postModuleTransition>(
443 static_cast<std::underlying_type_t<Phase>
>(Phase::destruction), 0,
id, 0, dtr.endDestruction);
448 moduleCtrDtrPtr.reset();
450 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
452 auto msg = assembleMessage<Step::preFrameworkTransition>(
453 static_cast<std::underlying_type_t<Phase>
>(
Phase::beginJob), 0, 0, 0, 0,
t);
457 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
458 auto msg = assembleMessage<Step::postFrameworkTransition>(
459 static_cast<std::underlying_type_t<Phase>
>(
Phase::beginJob), 0, 0, 0, 0,
t);
464 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
465 auto msg = assembleMessage<Step::preFrameworkTransition>(
466 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, 0, 0, 0,
t);
470 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
471 auto msg = assembleMessage<Step::postFrameworkTransition>(
472 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, 0, 0, 0,
t);
477 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
478 auto msg = assembleMessage<Step::preFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(
Phase::Event),
487 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
489 assembleMessage<Step::postFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(
Phase::Event),
499 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
500 auto msg = assembleMessage<Step::preFrameworkTransition>(toTransition(gc),
501 toTransitionIndex(gc),
521 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
522 auto msg = assembleMessage<Step::postFrameworkTransition>(toTransition(gc),
523 toTransitionIndex(gc),
543 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
544 auto msg = assembleMessage<Step::preFrameworkTransition>(
555 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
556 auto msg = assembleMessage<Step::postFrameworkTransition>(
567 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
568 auto msg = assembleMessage<Step::preFrameworkTransition>(
569 static_cast<std::underlying_type_t<Phase>
>(Phase::esSyncEnqueue),
572 sv.eventID().luminosityBlock(),
578 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
580 assembleMessage<Step::preFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(Phase::esSync),
583 sv.eventID().luminosityBlock(),
589 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
591 assembleMessage<Step::postFrameworkTransition>(
static_cast<std::underlying_type_t<Phase>
>(Phase::esSync),
594 sv.eventID().luminosityBlock(),
602 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
603 auto msg = assembleMessage<Step::preSourceTransition>(
608 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
609 auto msg = assembleMessage<Step::postSourceTransition>(
615 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
616 auto msg = assembleMessage<Step::preSourceTransition>(
617 static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginRun),
id.
value(),
t);
621 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
622 auto msg = assembleMessage<Step::postSourceTransition>(
623 static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginRun),
id.
value(),
t);
628 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
629 auto msg = assembleMessage<Step::preSourceTransition>(
630 static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginLumi),
id.
value(),
t);
634 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
635 auto msg = assembleMessage<Step::postSourceTransition>(
636 static_cast<std::underlying_type_t<Phase>
>(Phase::globalBeginLumi),
id.
value(),
t);
642 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
643 auto msg = assembleMessage<Step::preModuleTransition>(
648 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
649 auto msg = assembleMessage<Step::postModuleTransition>(
661 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
662 auto msg = assembleMessage<Step::preModuleTransition>(
663 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, md.
id(), 0,
t);
667 auto const t = duration_cast<duration_t>(
now() - beginTime).
count();
668 auto msg = assembleMessage<Step::postModuleTransition>(
669 static_cast<std::underlying_type_t<Phase>
>(Phase::endJob), 0, md.
id(), 0,
t);
682 StreamEDModuleState<Step::postModuleEventDelayedGet>(
logFile, beginTime));
702 GlobalEDModuleState<Step::preModuleTransition>(
logFile, beginTime));
704 GlobalEDModuleState<Step::postModuleTransition>(
logFile, beginTime));
732 ESModuleState<Step::preESModulePrefetching>(
logFile, beginTime, recordIndices));
734 ESModuleState<Step::postESModulePrefetching>(
logFile, beginTime, recordIndices));
741 std::ostringstream oss;
742 oss <<
"# Transition Symbol\n";
743 oss <<
"#------------------------ ------\n";
744 oss <<
"# construction " << Phase::construction <<
" \n" 745 <<
"# esSyncEnqueue " << Phase::esSyncEnqueue <<
"\n" 746 <<
"# esSync " << Phase::esSync <<
"\n" 748 <<
"# beginStream " << Phase::beginStream <<
"\n" 749 <<
"# beginProcessBlock " << Phase::beginProcessBlock <<
"\n" 750 <<
"# accessInputProcessBlock " << Phase::accessInputProcessBlock <<
"\n" 751 <<
"# globalBeginRun " << Phase::globalBeginRun <<
"\n" 752 <<
"# streamBeginRun " << Phase::streamBeginRun <<
"\n" 753 <<
"# globalBeginLumi " << Phase::globalBeginLumi <<
"\n" 754 <<
"# streamBeginLumi " << Phase::streamBeginLumi <<
"\n" 756 <<
"# streamEndLumi " << Phase::streamEndLumi <<
"\n" 757 <<
"# globalEndLumi " << Phase::globalEndLumi <<
"\n" 758 <<
"# globalWriteLumi " << Phase::globalWriteLumi <<
"\n" 759 <<
"# streamEndRun " << Phase::streamEndRun <<
"\n" 760 <<
"# globalEndRun " << Phase::globalEndRun <<
"\n" 761 <<
"# globalWriteRun " << Phase::globalWriteRun <<
"\n" 762 <<
"# endProcessBlock " << Phase::endProcessBlock <<
"\n" 763 <<
"# writeProcessBlock " << Phase::writeProcessBlock <<
"\n" 764 <<
"# endStream " << Phase::endStream <<
"\n" 765 <<
"# endJob " << Phase::endJob <<
"\n\n";
766 oss <<
"# Step Symbol Entries\n" 767 <<
"# -------------------------- ------ ------------------------------------------\n" 768 <<
"# preSourceTransition " << Step::preSourceTransition
769 <<
" <Transition type> <Transition ID> <Time since beginJob (us)>\n" 770 <<
"# postSourceTransition " << Step::postSourceTransition
771 <<
" <Transition type> <Transition ID> <Time since beginJob (us)>\n" 772 <<
"# preModulePrefetching " << Step::preModulePrefetching
773 <<
" <Transition type> <Transition ID> <EDModule ID> <Requesting EDModule ID or 0> <Time since beginJob " 775 <<
"# postModulePrefetching " << Step::postModulePrefetching
776 <<
" <Transition type> <Transition ID> <EDModule ID> <Requesting EDModule ID or 0> <Time since beginJob " 778 <<
"# preModuleEventAcquire " << Step::preModuleEventAcquire
779 <<
" <Transition type> <Transition ID> <EDModule ID> <Requesting EDModule ID or 0> <Time since beginJob " 781 <<
"# postModuleEventAcquire " << Step::postModuleEventAcquire
782 <<
" <Transition type> <Transition ID> <EDModule ID> <Requesting EDModule ID or 0> <Time since beginJob " 784 <<
"# preModuleTransition " << Step::preModuleTransition
785 <<
" <Transition type> <Transition ID> <EDModule ID> <Requesting EDModule ID or 0> <Time since beginJob " 787 <<
"# preEventReadFromSource " << Step::preEventReadFromSource
788 <<
" <Transition type> <Transition ID> <EDModule ID> <Requesting EDModule ID or 0> <Time since beginJob " 790 <<
"# postEventReadFromSource " << Step::postEventReadFromSource
791 <<
" <Transition type> <Transition ID> <EDModule ID> <Requesting EDModule ID or 0> <Time since beginJob " 793 <<
"# postModuleTransition " << Step::postModuleTransition
794 <<
" <Transition type> <Transition ID> <EDModule ID> <Requesting EDModule ID> <Time since beginJob (us)>\n" 795 <<
"# preESModulePrefetching " << Step::preESModulePrefetching
796 <<
" <Transition type> <Transition ID> <ESModule ID> <Record ID> <Requesting module ID (+ED, -ES)> <Time " 797 "since beginJob (us)>\n" 798 <<
"# postESModulePrefetching " << Step::postESModulePrefetching
799 <<
" <Transition type> <Transition ID> <ESModule ID> <Record ID> <Requesting module ID (+ED, -ES)> <Time " 800 "since beginJob (us)>\n" 801 <<
"# preESModuleTransition " << Step::preESModule
802 <<
" <TransitionType> <Transition ID> <ESModule ID> <Record ID> <Requesting module ID (+ED, -ES)> <Time " 803 "since beginJob (us)>\n" 804 <<
"# postESModuleTransition " << Step::postESModule
805 <<
" <TransitionType> <Transition ID> <ESModule ID> <Record ID> <Requesting module ID (+ED, -ES)> <Time " 806 "since beginJob (us)>\n" 807 <<
"# preFrameworkTransition " << Step::preFrameworkTransition
808 <<
" <Transition type> <Transition ID> <Run#> <LumiBlock#> <Event #> <Time since beginJob (ms)>\n" 809 <<
"# postFrameworkTransition " << Step::postFrameworkTransition
810 <<
" <Transition type> <Transition ID> <Run#> <LumiBlock#> <Event #> <Time since beginJob (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 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 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 watchPreBeginProcessBlock(PreBeginProcessBlock::slot_type const &iSlot)
ESModuleCallingContext const * esmoduleCallingContext() const
void watchPreEndProcessBlock(PreEndProcessBlock::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)
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)
void watchPreModuleEndJob(PreModuleEndJob::slot_type const &iSlot)
def template(fileName, svg, replaceme="REPLACEME")
void watchPostGlobalEndLumi(PostGlobalEndLumi::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
std::ostream & operator<<(std::ostream &os, SimpleMemoryCheck::SignificantEvent const &se)
void watchPreModuleBeginJob(PreModuleBeginJob::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 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 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 watchPostGlobalEndRun(PostGlobalEndRun::slot_type const &iSlot)
void watchPreStreamBeginLumi(PreStreamBeginLumi::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 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)
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)