def makeDict(self, onlyTheseTags = None, longNames = False, raw = False, numAuthors = True, genderCounts = True):
        if onlyTheseTags:
            for i in range(len(onlyTheseTags)):
                if onlyTheseTags[i] in fullToTagDict:
                    onlyTheseTags[i] = fullToTagDict[onlyTheseTags[i]]
            retrievedFields = onlyTheseTags
        else:
            retrievedFields = []
            for R in self:
                tagsLst = [t for t in R.keys() if t not in retrievedFields]
                retrievedFields += tagsLst
        if longNames:
            try:
                retrievedFields = [tagToFullDict[t] for t in retrievedFields]
            except KeyError:
                raise KeyError("One of the tags could not be converted to a long name.")
        retDict = {k : [] for k in retrievedFields}
        if numAuthors:
            retDict["num-Authors"] = []
        if genderCounts:
            retDict.update({'num-Male' : [], 'num-Female' : [], 'num-Unknown' : []})
        for R in self:
            if numAuthors:
                retDict["num-Authors"].append(len(R.get('authorsShort', [])))
            if genderCounts:
                m, f, u = R.authGenders(_countsTuple = True)
                retDict['num-Male'].append(m)
                retDict['num-Female'].append(f)
                retDict['num-Unknown'].append(u)
            for k, v in R.subDict(retrievedFields, raw = raw).items():
                retDict[k].append(v)
        return retDict