00001
00002
00003
00004
00005
00006
00007
00008
00009 from DybPython.DybPythonAlg import DybPythonAlg
00010 from GaudiPython import SUCCESS, FAILURE
00011 from GaudiPython import gbl
00012
00013
00014 TCanvas = gbl.TCanvas
00015 TLegend = gbl.TLegend
00016 gbl.gStyle.SetPalette(1)
00017 gbl.gStyle.SetOptFit(1)
00018
00019
00020 class DrawEnergyFigsAlg(DybPythonAlg):
00021 "Algorithm to draw figures from the energy statistics file"
00022 def __init__(self,name):
00023 DybPythonAlg.__init__(self,name)
00024 return
00025
00026 def initialize(self):
00027 status = DybPythonAlg.initialize(self)
00028 if status.isFailure(): return status
00029 self.info("initializing")
00030
00031 return SUCCESS
00032
00033 def execute(self):
00034 self.info("executing")
00035
00036 return SUCCESS
00037
00038 def finalize(self):
00039 self.info("finalizing")
00040
00041
00042 canvas = TCanvas()
00043
00044
00045 self.stats["/file3/energy/reconEnergy"].Draw()
00046 self.stats["/file3/energy/reconEnergy"].SetLineColor(4)
00047 self.stats["/file1/energy/reconEnergy"].Draw("same")
00048 self.stats["/file1/energy/reconEnergy"].SetLineColor(1)
00049 self.stats["/file0/energy/reconEnergy"].Draw("same")
00050 self.stats["/file0/energy/reconEnergy"].SetLineColor(2)
00051 self.stats["/file2/energy/reconEnergy"].Draw("same")
00052 self.stats["/file2/energy/reconEnergy"].SetLineColor(3)
00053 self.stats["/file4/energy/reconEnergy"].Draw("same")
00054 self.stats["/file4/energy/reconEnergy"].SetLineColor(5)
00055 self.stats["/file5/energy/reconEnergy"].Draw("same")
00056 self.stats["/file5/energy/reconEnergy"].SetLineColor(6)
00057 self.stats["/file6/energy/reconEnergy"].Draw("same")
00058 self.stats["/file6/energy/reconEnergy"].SetLineColor(7)
00059 self.stats["/file7/energy/reconEnergy"].Draw("same")
00060 self.stats["/file7/energy/reconEnergy"].SetLineColor(8)
00061 self.stats["/file8/energy/reconEnergy"].Draw("same")
00062 self.stats["/file8/energy/reconEnergy"].SetLineColor(9)
00063
00064
00065
00066 leg=TLegend(0.1,0.65,0.3,0.9);
00067 leg.AddEntry(self.stats["/file0/energy/reconEnergy"],"No geometry","l");
00068 leg.AddEntry(self.stats["/file1/energy/reconEnergy"],"With geometry","l");
00069 leg.AddEntry(self.stats["/file2/energy/reconEnergy"],"Al Vacuum","l");
00070 leg.AddEntry(self.stats["/file4/energy/reconEnergy"],"SS Vacuum","l");
00071 leg.AddEntry(self.stats["/file3/energy/reconEnergy"],"Al + SS Vacuum","l");
00072 leg.AddEntry(self.stats["/file5/energy/reconEnergy"],"Al + SS + Ge Vacuum","l");
00073 leg.AddEntry(self.stats["/file8/energy/reconEnergy"],"Al + SS + Acr Vacuum","l");
00074 leg.AddEntry(self.stats["/file7/energy/reconEnergy"],"Ge + Acr Vacuum","l");
00075 leg.AddEntry(self.stats["/file6/energy/reconEnergy"],"Al + SS + Ge + Acr Vacuum","l");
00076 leg.Draw();
00077
00078
00079 canvas.SaveAs("reconEnergyDiff.png")
00080
00081 status = DybPythonAlg.finalize(self)
00082 return status
00083
00084
00085
00086
00087 def configure():
00088 from StatisticsSvc.StatisticsSvcConf import StatisticsSvc
00089 statsSvc = StatisticsSvc()
00090 statsSvc.Input={"file0":"stats_runnoGEO0.root",
00091 "file1":"stats_runGEO0.root","file2":"stats_runGEO0Alvacuum.root","file3":"stats_runGEO0AlSSvacuum.root","file4":"stats_runGEO0SSvacuum.root",
00092 "file5":"stats_runGEO0AlSSGEvacuum.root","file6":"stats_runGEO0AlSSGEAcrvacuum.root","file7":"stats_runGeAcrvacuum.root",
00093 "file8":"stats_runGEOAlSSAcrvacuum.root"}
00094 return
00095
00096 def run(app):
00097 '''
00098 Configure and add an algorithm to job
00099 '''
00100 app.ExtSvc += ["StatisticsSvc"]
00101 energyFigsAlg = DrawEnergyFigsAlg("MyEnergyFigs")
00102 app.addAlgorithm(energyFigsAlg)
00103 pass
00104