IPhotonObservableTool Node1 IPhotonObservableTool   + ~IPhotonObservableTool() + evaluate() + evaluate() Node2 IObservableTool   + ~IObservableTool() + evaluate() Node2->Node1 Node3 asg::IAsgTool   + ~IAsgTool() + print() Node3->Node2 Node4 IAlgTool     Node4->Node3