Ath::DynamicDataHelper Node1 Ath::DynamicDataHelper + gatherDataHandlesAndDynamic Consumers() + addExtraDependencies() + updateDataNeeds() # updateDataNeeds() Node2 std::unordered_map < IDynamicDataConsumer *, std::vector< Gaudi ::Algorithm * > > Node2->Node1 #m_dynDataConsumer Node3 std::vector< Gaudi ::Algorithm * > + elements Node3->Node2 +elements Node4 IDynamicDataConsumer + ~IDynamicDataConsumer() + updateDataNeeds() Node4->Node2 +keys Node5 std::unordered_set < const DataObjID *, DataObjID_PtrHasher, DataObjID_PtrEqual > + keys Node5->Node1 #m_inputHandles #m_outputHandles Node6 std::vector< DataObjID > + elements Node6->Node1 #m_extraOutputIDs