def METHOD_NAME(self):
    """
    read in the AHF mtree file containing only the indices of halos and its progenitors and assume progenitors are ordered in descending weight.
    """
    filename = self._path
    results = {'id_this':np.asarray([],dtype=np.int64), 'id_desc':np.asarray([],dtype=np.int64), 'f_share':np.asarray([],dtype=np.float64)} #'Mvir':np.asarray([],dtype=np.float64),
    f = open(filename)
    lines = f.readlines()
    nhalos = int(lines[0])
    skip = 1 #skip lines already read
    i=0
    while i < nhalos:
        i += 1
        _tmp = np.fromstring(lines[skip], dtype=np.dtype(int,int), sep=' ')
        _id = int(_tmp[0])
        nprogen = int(_tmp[1])
        skip += 1 # increment the skip of lines for the line read above
        if nprogen > 0:
            for n in range(nprogen):
                _this_id = int(lines[skip+n]) # rip off the timestep which is encoded as the first 3 digits
                if _this_id in self._fid: # check if the halo exists in the database, this is needed if db was created with a minimum particle number per halo which does not agree with AHF definition
                    results['id_desc'] = np.append(results['id_desc'],np.asarray([_id],dtype=np.int64))
                    results['id_this'] = np.append(results['id_this'],np.asarray([_this_id],dtype=np.int64))
                    results['f_share'] = np.append(results['f_share'], np.asarray([(nprogen-n)/nprogen],dtype=np.float64))
        skip += nprogen   # increment line skip by already read lines
    self.links = results