def productTask(options, resultsSet):
        ProductTask.__printTaskInfoStart(options)
        # Copy resultsSet so as to have a backup
        workingRS = resultsSet.copy()
        # Inflate the result set so that each simulator config result includes all the stats keys
        pintoolRS = ResultSet.limitToPintoolResults(workingRS)
        simRS = ResultSet.limitToSimulatorResults(workingRS)
        simRS = ResultSet.extractGlobalStats(simRS)
        li_allKeys = ResultSet.getAllKeys(simRS)
        simRS = ResultSet.inflateResultSetWithKeys(simRS, li_allKeys)
        inflatedRS = []
        inflatedRS.extend(pintoolRS)
        inflatedRS.extend(simRS)

        res = Result(options)
        res.generateResult(inflatedRS)

        if options.generateEnergyStats:
            mp = McPATTask(options)
            mp.parseXml(workingRS)
            mp.runMcPAT()
            mpResultsSet = CollectTask.collectMcpatResults(options, inflatedRS)
            res.generateEnergyResult(mpResultsSet)

        ProductTask.__printTaskInfoEnd(options)