diff --git a/Control/SGComps/src/SGInputLoader.cxx b/Control/SGComps/src/SGInputLoader.cxx index 0815f2a2f61b0cb4c4e661f197c0b62712e3f224..8a77c39b056dd3a6c879dd07bba169d1858eb5a4 100644 --- a/Control/SGComps/src/SGInputLoader.cxx +++ b/Control/SGComps/src/SGInputLoader.cxx @@ -89,7 +89,20 @@ SGInputLoader::execute() if (dp->transientAddress()->provider() == 0) { ATH_MSG_DEBUG(" obj " << obj << " has no provider, and is only Transient" ); } + + // Tell hive about the object. evtStore()->addedNewTransObject(obj.clid(), obj.key()); + + // Also add all aliases... + for (const std::string& alias : dp->alias()) { + evtStore()->addedNewTransObject(obj.clid(), alias); + } + + // ... and linked classes. + for (CLID clid2 : dp->transientAddress()->transientID()) { + if (clid2 != obj.clid()) + evtStore()->addedNewTransObject(clid2, obj.key()); + } } else { ATH_MSG_ERROR("unable to get proxy for " << obj); }