332 typedef std::vector<StableProvenance const*> Provenances;
333 Provenances provenances;
335 iEvent.getAllStableProvenance(provenances);
338 LogAbsolute(
"EventContent") <<
"\n" 340 << provenances.size() <<
" product" << (provenances.size() == 1 ?
"" :
"s")
341 <<
" with friendlyClassName, moduleLabel, productInstanceName and processName:" 346 for (
auto const& provenance : provenances) {
349 const std::string kEndPathStatus(
"edm::EndPathStatus");
350 if (className == kPathStatus || className == kEndPathStatus) {
356 std::string const& modLabel = provenance->moduleLabel();
367 LogAbsolute(
"EventContent") <<
indentation_ << friendlyName <<
" \"" << modLabel <<
"\" \"" << instanceName
368 <<
"\" \"" << processName <<
"\"" 369 <<
" (productId = " << provenance->productID() <<
")" << std::endl;
372 auto const& prov =
iEvent.getProvenance(provenance->branchID());
373 auto const* productProvenance = prov.productProvenance();
374 if (productProvenance) {
375 const bool isAlias = productProvenance->branchID() != provenance->branchID();
377 LogAbsolute(
"EventContent") << prov;
379 aliasForModLabel =
iEvent.getProvenance(productProvenance->branchID()).moduleLabel();
380 LogAbsolute(
"EventContent") <<
"Is an alias for " << aliasForModLabel;
382 ProcessHistory
const* processHistory = prov.processHistoryPtr();
383 if (processHistory) {
384 for (ProcessConfiguration
const& pc : *processHistory) {
385 if (pc.processName() == prov.processName()) {
388 ParameterSet const* processPset = psetRegistry->getMapped(psetID);
392 LogAbsolute(
"EventContent") <<
"Alias PSet";
394 LogAbsolute(
"EventContent") << processPset->getParameterSet(modLabel);
396 if (isAlias and processPset->existsAs<
ParameterSet>(aliasForModLabel)) {
397 LogAbsolute(
"EventContent") << processPset->getParameterSet(aliasForModLabel);
407 "\" \"" + processName +
"\"";
412 printObject(
iEvent, className, modLabel, instanceName, processName, startIndent, verboseIndentation_);
416 std::string class_and_label = friendlyName +
"_" + modLabel;
422 LogAbsolute(
"EventContent") << startIndent <<
" \"" << className <<
"\"" 423 <<
" is an unknown type" << std::endl;
427 iEvent.getByLabel(InputTag(modLabel, instanceName, processName),
handle);
std::vector< std::string > getModuleLabels_
std::string verboseIndentation_
std::map< std::string, int > cumulates_
std::string friendlyName(std::string const &iFullName)
Hash< ParameterSetType > ParameterSetID
std::vector< std::string > moduleLabels_
bool binary_search_all(ForwardSequence const &s, Datum const &d)
wrappers for std::binary_search
static Registry * instance()
std::string className(const T &t)