def METHOD_NAME(self, mergeableFiles):
    """
    _defineMergeUnits_
    Split all the mergeable files into merge units.  A merge unit is a group
    of files that must be merged together.  For example, the files that
    result from event based splitting jobs need to be merged back together.
    This method will return a list of merge units.  A merge unit is a
    dictionary with the following keys: file_parent, total_events, total_size,
    run, lumi, and files.  The files in the merge group are stored in a list
    under the files key.
    """
    mergeUnits = {}
    newMergeUnit = {}
    for mergeableFile in mergeableFiles:
        newMergeFile = {}
        for key in mergeableFile:
            newMergeFile[key] = mergeableFile[key]
        if newMergeFile["file_run"] not in mergeUnits:
            mergeUnits[newMergeFile["file_run"]] = []
        for mergeUnit in mergeUnits[newMergeFile["file_run"]]:
            if mergeUnit["file_parent"] == mergeableFile["file_parent"]:
                mergeUnit["files"].append(newMergeFile)
                mergeUnit["total_size"] += newMergeFile["file_size"]
                mergeUnit["total_events"] += newMergeFile["file_events"]
                if mergeableFile["file_run"] < mergeUnit["run"] or \
                        (mergeableFile["file_run"] == mergeUnit["run"] and \
                                     mergeableFile["file_lumi"] < mergeUnit["lumi"]):
                    newMergeUnit["run"] = newMergeFile["file_run"]
                    newMergeUnit["lumi"] = newMergeFile["file_lumi"]
                break
        else:
            newMergeUnit = {}
            newMergeUnit["file_parent"] = newMergeFile["file_parent"]
            newMergeUnit["total_events"] = newMergeFile["file_events"]
            newMergeUnit["total_size"] = newMergeFile["file_size"]
            newMergeUnit["run"] = newMergeFile["file_run"]
            newMergeUnit["lumi"] = newMergeFile["file_lumi"]
            newMergeUnit["files"] = []
            newMergeUnit["files"].append(newMergeFile)
            mergeUnits[newMergeFile["file_run"]].append(newMergeUnit)
    return mergeUnits