def rbo(self, run_b_rep=None, run_a_rep=None, run_b_path=None, run_a_path=None, print_feedback=False, misinfo=True):
    '\n        Determines the Rank-Biased Overlap (RBO) between the original and reproduced document orderings\n        according to the following paper:\n        Timo Breuer, Nicola Ferro, Norbert Fuhr, Maria Maistro, Tetsuya Sakai, Philipp Schaer, Ian Soboroff.\n        How to Measure the Reproducibility of System-oriented IR Experiments.\n        Proceedings of SIGIR, pages 349-358, 2020.\n\n        @param run_b_rep: Scores of the baseline run,\n                          if not provided the scores of the RpdEvaluator object will be used instead.\n        @param run_a_rep: Scores of the advanced run,\n                          if not provided the scores of the RpdEvaluator object will be used instead.\n        @param run_b_path: Path to another reproduced baseline run,\n                           if not provided the reproduced baseline run of the RpdEvaluator object will be used instead.\n        @param run_a_path: Path to another reproduced advanced run,\n                           if not provided the reproduced advanced run of the RpdEvaluator object will be used instead.\n        @param print_feedback: Boolean value indicating if feedback on progress should be printed.\n        @param misinfo: Use the RBO implementation that is also used in the TREC Health Misinformation Track.\n                        See also: https://github.com/claclark/Compatibility\n        @return: Dictionary with RBO values that compare the document orderings of the original and reproduced runs.\n        '
    if (self.run_b_orig and run_b_path):
        if (self.run_a_orig and run_a_path):
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline and advanced run.')
            with open(run_b_path, 'r') as b_run, open(run_a_path, 'r') as a_run:
                run_b_rep = pytrec_eval.parse_run(b_run)
                run_b_rep = {t: run_b_rep[t] for t in sorted(run_b_rep)}
                run_a_rep = pytrec_eval.parse_run(a_run)
                run_a_rep = {t: run_a_rep[t] for t in sorted(run_a_rep)}
            return {'baseline': RBO(self.run_b_orig, run_b_rep, pbar=print_feedback, misinfo=misinfo), 'advanced': RBO(self.run_a_orig, run_a_rep, pbar=print_feedback, misinfo=misinfo)}
        else:
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline run.')
            with open(run_b_path, 'r') as b_run:
                run_b_rep = pytrec_eval.parse_run(b_run)
                run_b_rep = {t: run_b_rep[t] for t in sorted(run_b_rep)}
            return {'baseline': RBO(self.run_b_orig, run_b_rep, pbar=print_feedback, misinfo=misinfo)}
    if (self.run_b_orig and run_b_rep):
        if (self.run_a_orig and run_a_rep):
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline and advanced run.')
            return {'baseline': RBO(self.run_b_orig, run_b_rep, pbar=print_feedback, misinfo=misinfo), 'advanced': RBO(self.run_a_orig, run_a_rep, pbar=print_feedback, misinfo=misinfo)}
        else:
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline run.')
            return {'baseline': RBO(self.run_b_orig, run_b_rep, pbar=print_feedback, misinfo=misinfo)}
    if (self.run_b_orig and self.run_b_rep):
        if (self.run_a_orig and self.run_a_rep):
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline and advanced run.')
            return {'baseline': RBO(self.run_b_orig, self.run_b_rep, pbar=print_feedback, misinfo=misinfo), 'advanced': RBO(self.run_a_orig, self.run_a_rep, pbar=print_feedback, misinfo=misinfo)}
        else:
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline run.')
            return {'baseline': RBO(self.run_b_orig, self.run_b_rep, pbar=print_feedback, misinfo=misinfo)}
    else:
        print(ERR_MSG)
Determines the Rank-Biased Overlap (RBO) between the original and reproduced document orderings
according to the following paper:
Timo Breuer, Nicola Ferro, Norbert Fuhr, Maria Maistro, Tetsuya Sakai, Philipp Schaer, Ian Soboroff.
How to Measure the Reproducibility of System-oriented IR Experiments.
Proceedings of SIGIR, pages 349-358, 2020.

@param run_b_rep: Scores of the baseline run,
                  if not provided the scores of the RpdEvaluator object will be used instead.
@param run_a_rep: Scores of the advanced run,
                  if not provided the scores of the RpdEvaluator object will be used instead.
@param run_b_path: Path to another reproduced baseline run,
                   if not provided the reproduced baseline run of the RpdEvaluator object will be used instead.
@param run_a_path: Path to another reproduced advanced run,
                   if not provided the reproduced advanced run of the RpdEvaluator object will be used instead.
@param print_feedback: Boolean value indicating if feedback on progress should be printed.
@param misinfo: Use the RBO implementation that is also used in the TREC Health Misinformation Track.
                See also: https://github.com/claclark/Compatibility
@return: Dictionary with RBO values that compare the document orderings of the original and reproduced runs.
def rbo(self, run_b_rep=None, run_a_rep=None, run_b_path=None, run_a_path=None, print_feedback=False, misinfo=True):
    '\n        Determines the Rank-Biased Overlap (RBO) between the original and reproduced document orderings\n        according to the following paper:\n        Timo Breuer, Nicola Ferro, Norbert Fuhr, Maria Maistro, Tetsuya Sakai, Philipp Schaer, Ian Soboroff.\n        How to Measure the Reproducibility of System-oriented IR Experiments.\n        Proceedings of SIGIR, pages 349-358, 2020.\n\n        @param run_b_rep: Scores of the baseline run,\n                          if not provided the scores of the RpdEvaluator object will be used instead.\n        @param run_a_rep: Scores of the advanced run,\n                          if not provided the scores of the RpdEvaluator object will be used instead.\n        @param run_b_path: Path to another reproduced baseline run,\n                           if not provided the reproduced baseline run of the RpdEvaluator object will be used instead.\n        @param run_a_path: Path to another reproduced advanced run,\n                           if not provided the reproduced advanced run of the RpdEvaluator object will be used instead.\n        @param print_feedback: Boolean value indicating if feedback on progress should be printed.\n        @param misinfo: Use the RBO implementation that is also used in the TREC Health Misinformation Track.\n                        See also: https://github.com/claclark/Compatibility\n        @return: Dictionary with RBO values that compare the document orderings of the original and reproduced runs.\n        '
    if (self.run_b_orig and run_b_path):
        if (self.run_a_orig and run_a_path):
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline and advanced run.')
            with open(run_b_path, 'r') as b_run, open(run_a_path, 'r') as a_run:
                run_b_rep = pytrec_eval.parse_run(b_run)
                run_b_rep = {t: run_b_rep[t] for t in sorted(run_b_rep)}
                run_a_rep = pytrec_eval.parse_run(a_run)
                run_a_rep = {t: run_a_rep[t] for t in sorted(run_a_rep)}
            return {'baseline': RBO(self.run_b_orig, run_b_rep, pbar=print_feedback, misinfo=misinfo), 'advanced': RBO(self.run_a_orig, run_a_rep, pbar=print_feedback, misinfo=misinfo)}
        else:
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline run.')
            with open(run_b_path, 'r') as b_run:
                run_b_rep = pytrec_eval.parse_run(b_run)
                run_b_rep = {t: run_b_rep[t] for t in sorted(run_b_rep)}
            return {'baseline': RBO(self.run_b_orig, run_b_rep, pbar=print_feedback, misinfo=misinfo)}
    if (self.run_b_orig and run_b_rep):
        if (self.run_a_orig and run_a_rep):
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline and advanced run.')
            return {'baseline': RBO(self.run_b_orig, run_b_rep, pbar=print_feedback, misinfo=misinfo), 'advanced': RBO(self.run_a_orig, run_a_rep, pbar=print_feedback, misinfo=misinfo)}
        else:
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline run.')
            return {'baseline': RBO(self.run_b_orig, run_b_rep, pbar=print_feedback, misinfo=misinfo)}
    if (self.run_b_orig and self.run_b_rep):
        if (self.run_a_orig and self.run_a_rep):
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline and advanced run.')
            return {'baseline': RBO(self.run_b_orig, self.run_b_rep, pbar=print_feedback, misinfo=misinfo), 'advanced': RBO(self.run_a_orig, self.run_a_rep, pbar=print_feedback, misinfo=misinfo)}
        else:
            if print_feedback:
                print('Determining Rank-biased Overlap (RBO) for baseline run.')
            return {'baseline': RBO(self.run_b_orig, self.run_b_rep, pbar=print_feedback, misinfo=misinfo)}
    else:
        print(ERR_MSG)