private static void collectAllTimes(Tree tree,NodeRef node,NodeRef[] excludeBelow,ArrayList times,ArrayList<Integer> childs){
  times.add(new ComparableDouble(tree.getNodeHeight(node)));
  childs.add(tree.getChildCount(node));
  for (int i=0; i < tree.getChildCount(node); i++) {
    NodeRef child=tree.getChild(node,i);
    if (excludeBelow == null) {
      collectAllTimes(tree,child,excludeBelow,times,childs);
    }
 else {
      boolean include=true;
      for (      NodeRef anExcludeBelow : excludeBelow) {
        if (anExcludeBelow.getNumber() == child.getNumber()) {
          include=false;
          break;
        }
      }
      if (include)       collectAllTimes(tree,child,excludeBelow,times,childs);
    }
  }
}

private static void collectAllTimes ( Tree tree , NodeRef node , NodeRef [ ] excludeBelow , ArrayList times , ArrayList < Integer > childs ) { times . add ( new ComparableDouble ( tree . getNodeHeight ( node ) ) ) ; childs . add ( tree . getChildCount ( node ) ) ; for ( int i = 0 ; i < tree . getChildCount ( node ) ; i ++ ) { NodeRef child = tree . getChild ( node , i ) ; if ( excludeBelow == null ) { collectAllTimes ( tree , child , excludeBelow , times , childs ) ; } else { boolean include = true ; for ( NodeRef anExcludeBelow : excludeBelow ) { if ( anExcludeBelow . getNumber ( ) == child . getNumber ( ) ) { include = false ; break ; } } if ( include ) collectAllTimes ( tree , child , excludeBelow , times , childs ) ; } } }
extract coalescent times and tip information into arraylist times from tree .
