@classmethod
def summaryitemsstring(cls, folder=None, latex=False, transpose=True):
    if (folder is None):
        folder = cls.plotsdirname()
    if folder.startswith('/castor/'):
        folder = ('rfio:%(file)s' % repMap)
    elif folder.startswith('/store/'):
        folder = ('root://eoscms.cern.ch//eos/cms%(file)s' % repMap)
    if ((cls.__summaryitems is None) or (cls.__lastfolder != folder)):
        cls.__lastfolder = folder
        cls.__summaryitems = cls.getsummaryitems(folder)
    summaryitems = cls.__summaryitems
    if (not summaryitems):
        raise AllInOneError('No summary items!')
    size = {len(_.values(latex)) for _ in summaryitems}
    if (len(size) != 1):
        raise AllInOneError('Some summary items have different numbers of values\n{}'.format(size))
    size = size.pop()
    if transpose:
        columnwidths = ([max((len(_.name(latex)) for _ in summaryitems))] + [max((len(_.value(i, latex)) for _ in summaryitems)) for i in range(size)])
    else:
        columnwidths = [max((len(entry) for entry in ([_.name(latex)] + _.values(latex)))) for _ in summaryitems]
    if latex:
        join = ' & '
    else:
        join = ' '
    row = join.join(('{{:{}}}'.format(width) for width in columnwidths))
    if transpose:
        rows = [row.format(*([_.name(latex)] + _.values(latex))) for _ in summaryitems]
    else:
        rows = []
        rows.append(row.format(*(_.name for _ in summaryitems)))
        for i in range(size):
            rows.append(row.format(*(_.value(i, latex) for _ in summaryitems)))
    if latex:
        join = ' \\\\\n'
    else:
        join = '\n'
    result = join.join(rows)
    if latex:
        result = (((('\\begin{{tabular}}{{{}}}'.format((('|' + '|'.join(('c' * len(columnwidths)))) + '|')) + '\n') + result) + '\n') + '\\end{tabular}')
    return result
@classmethod
def summaryitemsstring(cls, folder=None, latex=False, transpose=True):
    if (folder is None):
        folder = cls.plotsdirname()
    if folder.startswith('/castor/'):
        folder = ('rfio:%(file)s' % repMap)
    elif folder.startswith('/store/'):
        folder = ('root://eoscms.cern.ch//eos/cms%(file)s' % repMap)
    if ((cls.__summaryitems is None) or (cls.__lastfolder != folder)):
        cls.__lastfolder = folder
        cls.__summaryitems = cls.getsummaryitems(folder)
    summaryitems = cls.__summaryitems
    if (not summaryitems):
        raise AllInOneError('No summary items!')
    size = {len(_.values(latex)) for _ in summaryitems}
    if (len(size) != 1):
        raise AllInOneError('Some summary items have different numbers of values\n{}'.format(size))
    size = size.pop()
    if transpose:
        columnwidths = ([max((len(_.name(latex)) for _ in summaryitems))] + [max((len(_.value(i, latex)) for _ in summaryitems)) for i in range(size)])
    else:
        columnwidths = [max((len(entry) for entry in ([_.name(latex)] + _.values(latex)))) for _ in summaryitems]
    if latex:
        join = ' & '
    else:
        join = ' '
    row = join.join(('{{:{}}}'.format(width) for width in columnwidths))
    if transpose:
        rows = [row.format(*([_.name(latex)] + _.values(latex))) for _ in summaryitems]
    else:
        rows = []
        rows.append(row.format(*(_.name for _ in summaryitems)))
        for i in range(size):
            rows.append(row.format(*(_.value(i, latex) for _ in summaryitems)))
    if latex:
        join = ' \\\\\n'
    else:
        join = '\n'
    result = join.join(rows)
    if latex:
        result = (((('\\begin{{tabular}}{{{}}}'.format((('|' + '|'.join(('c' * len(columnwidths)))) + '|')) + '\n') + result) + '\n') + '\\end{tabular}')
    return result