nodes: 0, module; 1, function_definition; 2, function_name:summary; 3, parameters; 4, block; 5, identifier:self; 6, default_parameter; 7, expression_statement; 8, expression_statement; 9, for_statement; 10, identifier:sortOn; 11, None; 12, comment:"""
          Summarize all the alignments for this title.
  
          @param sortOn: A C{str} attribute to sort titles on. One of 'length',
              'maxScore', 'medianScore', 'readCount', or 'title'.
          @raise ValueError: If an unknown C{sortOn} value is given.
          @return: A generator that yields C{dict} instances as produced by
              C{TitleAlignments} (see class earlier in this file), sorted by
              C{sortOn}.
          """; 13, assignment; 14, identifier:title; 15, identifier:titles; 16, block; 17, identifier:titles; 18, conditional_expression:self if sortOn is None else self.sortTitles(sortOn); 19, expression_statement; 20, identifier:self; 21, comparison_operator:sortOn is None; 22, call; 23, yield; 24, identifier:sortOn; 25, None; 26, attribute; 27, argument_list; 28, call; 29, identifier:self; 30, identifier:sortTitles; 31, identifier:sortOn; 32, attribute; 33, argument_list; 34, subscript; 35, identifier:summary; 36, identifier:self; 37, identifier:title
code: def summary(self, sortOn=None):
          """
          Summarize all the alignments for this title.
  
          @param sortOn: A C{str} attribute to sort titles on. One of 'length',
              'maxScore', 'medianScore', 'readCount', or 'title'.
          @raise ValueError: If an unknown C{sortOn} value is given.
          @return: A generator that yields C{dict} instances as produced by
              C{TitleAlignments} (see class earlier in this file), sorted by
              C{sortOn}.
          """
          titles = self if sortOn is None else self.sortTitles(sortOn)
  
          for title in titles:
              yield self[title].summary()