EL::Detail::OutputStreamData Node1 EL::Detail::OutputStreamData + testInvariant() + OutputStreamData() + OutputStreamData() + OutputStreamData() + file() + saveOutput() + close() + finalFileName() + addOutput() + addClone() + makeDirectoryFor() + getOutputHist() + getOutputTree() Node2 std::unique_ptr< SH ::DiskWriter > + operator->() Node2->Node1 -m_writer Node3 SH::DiskWriter + testInvariant() + DiskWriter() + ~DiskWriter() + path() + file() + close() - getPath() - getFile() - doClose() Node3->Node2 +ptr Node4 std::unordered_map < std::string, TObject * > Node4->Node1 -m_outputHistMap Node5 std::string Node5->Node4 +keys Node8 std::unordered_map < std::string, TTree * > Node5->Node8 +keys Node7 TObject Node7->Node4 +elements Node11 std::unique_ptr< TObject > + operator->() Node7->Node11 +ptr Node8->Node1 -m_outputTreeMap Node9 TTree Node9->Node8 +elements Node10 std::vector< std::unique _ptr< TObject > > Node10->Node1 -m_output Node11->Node10 +elements