code: 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