int calc_tree_property_index_tau_form(trend_property_info *property, hist_info *hist, void *halo_in) {
    int             r_val = -1;
    tree_node_info *halo  = (tree_node_info *)(halo_in);
    if(halo != NULL) {
        tree_info *        trees   = (tree_info *)(property->params);
        tree_markers_info *markers = fetch_treenode_precomputed_markers(trees, halo);
        tree_node_info *   marker  = markers->half_peak_mass;
        if(marker != NULL) {
            int    halo_snap   = fetch_treenode_snap_tree(trees, halo);
            int    marker_snap = fetch_treenode_snap_tree(trees, marker);
            double tau         = (trees->t_list[halo_snap] - trees->t_list[marker_snap]) / t_dyn_z(trees->z_list[halo_snap], trees->cosmo);
            r_val              = calc_histogram_index(hist, tau);
        }
    }
    return (r_val);
}
int calc_tree_property_index_Vir_ratio(trend_property_info *property, hist_info *hist, void *halo_in) {
    tree_info *     trees = (tree_info *)(property->params);
    tree_node_info *halo  = (tree_node_info *)(halo_in);
    return (calc_histogram_index(hist, fetch_treenode_Vir_ratio(trees, halo)));
}
int calc_tree_property_index_logM(trend_property_info *property, hist_info *hist, void *halo_in) {
    tree_info *     trees = (tree_info *)(property->params);
    tree_node_info *halo  = (tree_node_info *)(halo_in);
    return (calc_histogram_index(hist, take_log10(fetch_treenode_M_vir(trees, halo))));
}
int calc_tree_property_index_log_sigma_vx(trend_property_info *property, hist_info *hist, void *list_in) {
    tree_info *         trees = (tree_info *)(property->params);
    treenode_list_info *list  = (treenode_list_info *)(list_in);
    return (calc_histogram_index(hist, fetch_treenode_list_local_log_sigma_vx(trees, list)));
}
int calc_halo_trend_property_index_SSFctn(trend_property_info *property,hist_info *hist,void *halo_in){
   halo_trend_info *halo_trend_data=(halo_trend_info *)(property->params);
   halo_info       *halo           =(halo_info       *)(halo_in);
   double SSFctn=(double)(halo->np_sub-halo->np_sub_largest)/(double)halo->np_sub;
   return(calc_histogram_index(hist,SSFctn));
}
int calc_halo_trend_property_index_logM_FoF(trend_property_info *property,hist_info *hist,void *halo_in){
   halo_trend_info *halo_trend_data=(halo_trend_info *)(property->params);
   halo_info       *halo           =(halo_info       *)(halo_in);
   return(calc_histogram_index(hist,take_log10(halo->properties_group->n_particles*halo_trend_data->m_p)));
}