def METHOD_NAME(self, model_yaml, qrels_path, output_root):
    if not os.path.exists(os.path.join(output_root, self.coverage_root)):
        os.makedirs(os.path.join(output_root, self.coverage_root))
    all_results = {}
    for fn in os.listdir(os.path.join(output_root, self.run_files_root)):
        should_skip = False
        for model in model_yaml['models']:
            if model not in fn or 'baseline' in fn:
                should_skip = True
                break
        if should_skip:
            continue
        qrels = self.get_qrels(qrels_path)
        avg_overlap = self.cal_single_run_coverage(os.path.join(output_root, self.run_files_root, fn), qrels)
        if avg_overlap[0] == 0.0: # ignore beta = 0.0
            continue
        for k in avg_overlap[1]:
            if k not in all_results:
                all_results[k] = []
            all_results[k].append((float(avg_overlap[0]), avg_overlap[1][k]))
    for k in all_results:
        with open(os.path.join(output_root, self.coverage_root, 'coverage_%d_avg.csv' % k), 'w') as f:
            for ele in sorted(all_results[k]):
                f.write('%.1f,%.4f\n' % (ele[0], ele[1]))