diff --git a/Trigger/TrigValidation/TrigValTools/bin/chainDump.py b/Trigger/TrigValidation/TrigValTools/bin/chainDump.py index dc817cfebb6b3414e8c3fd4a44340aef175838da..1dad40eb2238fab0bfcaeedb905cd9fecab27205 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/chainDump.py +++ b/Trigger/TrigValidation/TrigValTools/bin/chainDump.py @@ -61,6 +61,7 @@ class chainDump: # defaults are given twice -- once here and once below for interactive use self.checkFile = paramDict.get('rootFile',rfile) + self.refFile = paramDict.get('referenceFile',"") self.checkDir = paramDict.get('rootDirs', dirs) self.checkHist = paramDict.get('rootHists',hists) self.totalEvHist = paramDict.get('totalHist',totHist) @@ -72,6 +73,7 @@ class chainDump: self.compare = paramDict.get('compare',False) self.noSum = paramDict.get('noSum',False) self.enhancedBias = paramDict.get('enhancedBias',False) + self.normalize = paramDict.get('normalize',False) self.enhancedTag = paramDict.get('enhancedTag',defEnhancedTag) self.top = paramDict.get('top',False) self.out = paramDict.get('out',False) @@ -79,7 +81,8 @@ class chainDump: if self.verbose: print "verbose mode ", self.verbose - print "checking file(s): ", self.checkFile + print "checking file(s): ", self.checkFile + print "reference file: ", self.refFile print "saveToFile: ", self.saveToFile print "compare results of multiple files: ", self.compare print "integer tolerance: ", self.intTolerance @@ -196,13 +199,16 @@ class chainDump: if maxReleaseEvents > 0.0: giveDiffWarning = True maxReleaseEvents = eventSum + print line if self.saveToFile: f.write(line+"\n") - #print "maxReleaseEvents",maxReleaseEvents + #print "maxReleaseEvents",maxReleaseEvents #print "DMS ",nameList if giveDiffWarning and self.enhancedBias: print "WARNING: Releases do not all have the same number of events, rescaling to",maxReleaseEvents + if self.normalize: + print "WARNING: Releases do not all have the same number of events, rescaling to",maxReleaseEvents for chainName in nameList: line = chainName.ljust(nmax+1) if self.verbose: @@ -235,6 +241,8 @@ class chainDump: counts += [ [sum,releaseEvents] ] if self.enhancedBias and releaseEvents > 0: line += " %8d" % int(sum*maxReleaseEvents/releaseEvents) + if self.normalize and releaseEvents > 0: + line += " %8d" % int(sum*maxReleaseEvents/releaseEvents) else: line += " %8d" % sum # end of processing for a given chain @@ -428,7 +436,10 @@ class chainDump: files = glob.glob(self.checkFile) if len(files) < 1: return self.error - + if self.refFile: + rfiles = glob.glob(self.refFile) + if len(rfiles) > 0: + files += rfiles # # group files into different releases -- mainly for enhanced bias # @@ -592,7 +603,8 @@ class chainDump: # # sort list # - goodReleaseFileList.sort(reverse=True) + if not self.refFile: + goodReleaseFileList.sort(reverse=True) # # need to switch saveComparison so that # if works from a matrix of releases and goodfile @@ -626,6 +638,10 @@ if __name__ == "__main__": parser.add_option("--rootFile", action = "store", default = rfile, type="string", help = "name of root file") + + parser.add_option("--referenceFile", + action = "store", default = "", type="string", + help = "name of reference root file") parser.add_option("--fracTolerance", action = "store", default = [], type="string", @@ -674,6 +690,10 @@ if __name__ == "__main__": parser.add_option("-e","--enhancedBias", action = "store_true", default = False, help = "only look at enhanced Bias tests") + + parser.add_option("-N","--normalize", + action = "store_true", default = False, + help = "normalize to maximum events") parser.add_option("-t","--top", action = "store_true", default = False, @@ -694,7 +714,9 @@ if __name__ == "__main__": # fill in params dictionary as it would be in RTT params = {'rootFile' : opts.rootFile} - + + params['referenceFile']=opts.referenceFile + if not opts.rootDirs == [] : params['rootDirs'] = opts.rootDirs else: @@ -731,6 +753,8 @@ if __name__ == "__main__": params['enhancedBias'] = opts.enhancedBias + params['normalize'] = opts.normalize + params['top'] = opts.top params['ignoreDates'] = opts.ignoreDates