|
[Rivet-svn] r2191 - in trunk: . binblackhole at projects.hepforge.org blackhole at projects.hepforge.orgMon Dec 14 22:35:11 GMT 2009
Author: hoeth Date: Mon Dec 14 22:35:10 2009 New Revision: 2191 Log: make-plots: Eliminated the last global variables used for coordinate information, reenabled multithreading. Modified: trunk/ChangeLog trunk/bin/make-plots Modified: trunk/ChangeLog ============================================================================== --- trunk/ChangeLog Mon Dec 14 22:04:25 2009 (r2190) +++ trunk/ChangeLog Mon Dec 14 22:35:10 2009 (r2191) @@ -3,6 +3,9 @@ * New option "MainPlot" in make-plots. For people who only want the ratio plot and nothing else. + * Eliminated global variables for coordinates in make-plots and + enabled multithreading. + 2009-12-14 Andy Buckley <andy at insectnation.org> * AnalysisHandler::execute now calls AnalysisHandler::init(event) Modified: trunk/bin/make-plots ============================================================================== --- trunk/bin/make-plots Mon Dec 14 22:04:25 2009 (r2190) +++ trunk/bin/make-plots Mon Dec 14 22:35:10 2009 (r2191) @@ -9,12 +9,6 @@ ## $Revision$ ## - -# TODO: -# - Angabe von manuellen tickmarks und ticklabeln schoener machen. -# Im Moment ist die Syntax noch eine mit tab getrennte Liste von Wert und Beschriftung - - import os, sys, logging, re import tempfile import getopt @@ -199,37 +193,35 @@ self.set_ymin(inputdata) self.set_zmax(inputdata) self.set_zmin(inputdata) + inputdata.description['Borders']=(self.xmin, self.xmax, self.ymin, self.ymax, self.zmin, self.zmax) def set_xmin(self,inputdata): - global xmin if inputdata.description.has_key('XMin'): - xmin = float(inputdata.description['XMin']) + self.xmin = float(inputdata.description['XMin']) else: foo=[] for i in inputdata.description['DrawOnly']: foo.append(inputdata.histos[i].getXMin()) - xmin=min(foo) + self.xmin=min(foo) def set_xmax(self,inputdata): - global xmax if inputdata.description.has_key('XMax'): - xmax = float(inputdata.description['XMax']) + self.xmax = float(inputdata.description['XMax']) else: foo=[] for i in inputdata.description['DrawOnly']: foo.append(inputdata.histos[i].getXMax()) - xmax=max(foo) + self.xmax=max(foo) def set_ymin(self,inputdata): - global ymin, ymax if inputdata.description.has_key('YMin'): - ymin = float(inputdata.description['YMin']) + self.ymin = float(inputdata.description['YMin']) else: foo=[] for i in inputdata.description['DrawOnly']: - foo.append(inputdata.histos[i].getYMin(xmin, xmax, inputdata.description['LogY'])) + foo.append(inputdata.histos[i].getYMin(self.xmin, self.xmax, inputdata.description['LogY'])) if inputdata.description['is2dim']: - ymin=min(foo) + self.ymin=min(foo) else: showzero = True if inputdata.description.has_key('ShowZero'): @@ -237,21 +229,21 @@ showzero = False if showzero: if min(foo) > -1e-4: - ymin = 0 + self.ymin = 0 else: - ymin = 1.1*min(foo) + self.ymin = 1.1*min(foo) else: if min(foo) < -1e-4: - ymin = 1.1*min(foo) + self.ymin = 1.1*min(foo) elif min(foo) < 1e-4: - ymin = 0 + self.ymin = 0 else: - ymin = 0.9*min(foo) + self.ymin = 0.9*min(foo) if inputdata.description['LogY']: foo=[item for item in foo if item>0.0] if len(foo)==0: - foo.append(2e-4*ymax) + foo.append(2e-4*self.ymax) fullrange = opts.FULL_RANGE if inputdata.description.has_key('FullRange'): if inputdata.description['FullRange']=='1': @@ -259,48 +251,45 @@ else: fullrange = False if fullrange: - ymin = min(foo)/1.7 + self.ymin = min(foo)/1.7 else: - ymin = max(min(foo)/1.7, 2e-4*ymax) - if ymin==ymax: - ymin-=1 - ymax+=1 + self.ymin = max(min(foo)/1.7, 2e-4*self.ymax) + if self.ymin==self.ymax: + self.ymin-=1 + self.ymax+=1 def set_ymax(self,inputdata): - global ymax if inputdata.description.has_key('YMax'): - ymax = float(inputdata.description['YMax']) + self.ymax = float(inputdata.description['YMax']) else: foo=[] for i in inputdata.description['DrawOnly']: - foo.append(inputdata.histos[i].getYMax(xmin, xmax)) + foo.append(inputdata.histos[i].getYMax(self.xmin, self.xmax)) if inputdata.description['is2dim']: - ymax=max(foo) + self.ymax=max(foo) else: if inputdata.description['LogY']: - ymax=1.7*max(foo) + self.ymax=1.7*max(foo) else: - ymax=1.1*max(foo) + self.ymax=1.1*max(foo) def set_zmin(self,inputdata): - global zmin if inputdata.description.has_key('ZMin'): - zmin = float(inputdata.description['ZMin']) + self.zmin = float(inputdata.description['ZMin']) else: foo=[] for i in inputdata.description['DrawOnly']: - foo.append(inputdata.histos[i].getZMin()) - zmin=min(foo) + foo.append(inputdata.histos[i].getZMin(self.xmin, self.xmax, self.ymin, self.ymax)) + self.zmin=min(foo) def set_zmax(self,inputdata): - global zmax if inputdata.description.has_key('ZMax'): - zmax = float(inputdata.description['ZMax']) + self.zmax = float(inputdata.description['ZMax']) else: foo=[] for i in inputdata.description['DrawOnly']: - foo.append(inputdata.histos[i].getZMax()) - zmax=min(foo) + foo.append(inputdata.histos[i].getZMax(self.xmin, self.xmax, self.ymin, self.ymax)) + self.zmax=min(foo) def draw(self): pass @@ -864,11 +853,11 @@ if self.description.has_key('XMin') and self.description['XMin']!='': min=float(self.description['XMin']) else: - min=xmin + min=coors.xmin() if self.description.has_key('XMax') and self.description['XMax']!='': max=float(self.description['XMax']) else: - max=xmax + max=coors.xmax() dx=(max-min)/500. x=min-dx out += ('\\pscurve') @@ -1006,10 +995,10 @@ if self.is2dim: for i in range(len(self.data)): out += ('\\psframe') - color=int(129*(self.data[i]['Content']-zmin)/(zmax-zmin)) - if self.data[i]['Content']>zmax: + color=int(129*(self.data[i]['Content']-coors.zmin())/(coors.zmax()-coors.zmin())) + if self.data[i]['Content']>coors.zmax(): color=129 - if self.data[i]['Content']<zmin: + if self.data[i]['Content']<coors.zmin(): color=0 out += ('[linewidth=0pt, fillstyle=solid, fillcolor={gradientcolors!!['+str(color)+']}]') out += ('(' + coors.strphys2frameX(self.data[i]['LowEdge'][0]) + ', ' \ @@ -1120,7 +1109,7 @@ else: return self.data[0]['Content'] - def getZMin(self): + def getZMin(self, xmin, xmax, ymin, ymax): if not self.is2dim: return 0 zvalues = [] @@ -1130,7 +1119,7 @@ zvalues.append(self.data[i]['Content']) return min(zvalues) - def getZMax(self): + def getZMax(self, xmin, xmax, ymin, ymax): if not self.is2dim: return 0 zvalues = [] @@ -1306,7 +1295,7 @@ out += ('\n%\n% X-Ticks\n%\n') out += ('\\def\\majortickmarkx{\\psline[linewidth='+self.majorticklinewidth+'](0,0)(0,'+self.majorticklength+')}%\n') out += ('\\def\\minortickmarkx{\\psline[linewidth='+self.minorticklinewidth+'](0,0)(0,'+self.minorticklength+')}%\n') - out += self.draw_ticks(xmin, xmax,\ + out += self.draw_ticks(self.coors.xmin(), self.coors.xmax(),\ plotlog=self.description['LogX'],\ customticks=customticks,\ custommajortickmarks=custommajortickmarks,\ @@ -1345,7 +1334,7 @@ out += ('\n%\n% Y-Ticks\n%\n') out += ('\\def\\majortickmarky{\\psline[linewidth='+self.majorticklinewidth+'](0,0)('+self.majorticklength+',0)}%\n') out += ('\\def\\minortickmarky{\\psline[linewidth='+self.minorticklinewidth+'](0,0)('+self.minorticklength+',0)}%\n') - out += self.draw_ticks(ymin, ymax,\ + out += self.draw_ticks(self.coors.ymin(), self.coors.ymax(),\ plotlog=self.description['LogY'],\ customticks=customticks,\ custommajortickmarks=custommajortickmarks,\ @@ -1381,11 +1370,11 @@ def phys2frameX(self, x): if self.description['LogX']: if x>0: - result = 1.*(log10(x)-log10(xmin))/(log10(xmax)-log10(xmin)) + result = 1.*(log10(x)-log10(self.xmin()))/(log10(self.xmax())-log10(self.xmin())) else: return -10 else: - result = 1.*(x-xmin)/(xmax-xmin) + result = 1.*(x-self.xmin())/(self.xmax()-self.xmin()) if (fabs(result) < 1e-4): return 0 else: @@ -1394,11 +1383,11 @@ def phys2frameY(self, y): if self.description['LogY']: if y>0: - result = 1.*(log10(y)-log10(ymin))/(log10(ymax)-log10(ymin)) + result = 1.*(log10(y)-log10(self.ymin()))/(log10(self.ymax())-log10(self.ymin())) else: return -10 else: - result = 1.*(y-ymin)/(ymax-ymin) + result = 1.*(y-self.ymin())/(self.ymax()-self.ymin()) if (fabs(result) < 1e-4): return 0 else: @@ -1410,6 +1399,24 @@ def strphys2frameY(self, y): return str(self.phys2frameY(y)) + def xmin(self): + return self.description['Borders'][0] + + def xmax(self): + return self.description['Borders'][1] + + def ymin(self): + return self.description['Borders'][2] + + def ymax(self): + return self.description['Borders'][3] + + def zmin(self): + return self.description['Borders'][4] + + def zmax(self): + return self.description['Borders'][5] + #################### @@ -1553,11 +1560,6 @@ if numcores is None: numcores = 1 - ## Work-around for global variable locking bug. - ## We set the numcores default to 1 until we get - ## rid of the global variables. - numcores = 1 - ## Parse command line options from optparse import OptionParser, OptionGroup parser = OptionParser(usage=msg)
More information about the Rivet-svn mailing list |