public GDirectedGraph<V, GEdge<V>> getDominanceTree() {
		GDirectedGraph<V, GEdge<V>> dg = GraphFactory.createDirectedGraph();

		// note: we use the source graph here and not the one we mutated for calculating dominance
		Collection<V> vertices = sourceGraph.getVertices();
		Set<V> sources = navigator.getSources(sourceGraph);
		for (V v : vertices) {
			if (sources.contains(v)) {
				continue;
			}

			V dominator = getImmediateDominator(v);
			if (dominator != null && !Objects.equals(dominator, v)) {
				dg.addEdge(new DefaultGEdge<>(dominator, v));
			}
		}
		return dg;
	}
Returns the dominance tree for the given graph, which is tree where each 
node's children are those nodes it *immediately* dominates (a idom b).

@return the dominance tree
Ghidra/Framework/Graph/src/main/java/ghidra/graph/algo/ChkDominanceAlgorithm.java