def METHOD_NAME(self):
    """
    read in the AHF mtree file containing the indices of halos and its progenitors as well as information about the shared particles.
    We establish symmetric links since for AHF any progenitor can have several descendants cause of mass transfer.
    """
    filename = os.path.join(self._path)
    results = {'id_this':np.asarray([],dtype=np.int64), 'id_desc':np.asarray([],dtype=np.int64), 'f_share':np.asarray([],dtype=np.float64)} #np.empty((0,), dtype=np.dtype([('id_this', np.int64), ('id_desc', np.int64), ('Mvir', np.float32)]))
    data = np.genfromtxt(filename,comments="#",dtype="int")
    i=0
    while i < len(data):
        for j in range(data[i][2]):
            idx = i+1+j
            if data[idx][1] in self._fid: # check if this halo was loaded in case a minimum number of particles different to AHF was used to load halos into DB
            # keep in mind finder id and AHF id have an offset of 1
                results['id_desc'] = np.append(results['id_desc'],data[i][0])
                results['id_this'] = np.append(results['id_this'],data[idx][1])
                results['f_share'] = np.append(results['f_share'], float(data[idx][0] * data[idx][0]) / (data[i][1] * data[idx][2]) )
        i += data[i][2] + 1
    self.links = results