Public Member Functions | |
def | __init__ |
def | initialize |
def | execute |
def | finalize |
Definition at line 23 of file DrawGe68EnergyDiff.py.
def DrawGe68EnergyDiff::DrawEnergyFigsAlg::__init__ | ( | self, | ||
name | ||||
) |
Definition at line 25 of file DrawGe68EnergyDiff.py.
00025 : 00026 DybPythonAlg.__init__(self,name) 00027 return 00028 def initialize(self):
def DrawGe68EnergyDiff::DrawEnergyFigsAlg::initialize | ( | self | ) |
Definition at line 29 of file DrawGe68EnergyDiff.py.
00029 : 00030 status = DybPythonAlg.initialize(self) 00031 if status.isFailure(): return status 00032 self.info("initializing") 00033 00034 return SUCCESS 00035 def execute(self):
def DrawGe68EnergyDiff::DrawEnergyFigsAlg::execute | ( | self | ) |
def DrawGe68EnergyDiff::DrawEnergyFigsAlg::finalize | ( | self | ) |
Definition at line 41 of file DrawGe68EnergyDiff.py.
00041 : 00042 self.info("finalizing") 00043 00044 # Make energy histograms 00045 canvas = TCanvas() 00046 00047 self.stats["/file0/energy/nobgEnergy"].Draw() 00048 maxbin = self.stats["/file0/energy/nobgEnergy"].GetMaximumBin() 00049 max = self.stats["/file0/energy/nobgEnergy"].GetMaximumBin() * 0.006 00050 interval=0.02 00051 g = 0 00052 oldfitChi = 1000 00053 for i in range(0,15): 00054 self.stats["/file0/energy/nobgEnergy"].Fit("gaus","","",max-interval,max+2*interval) 00055 print "interval1=", max-interval 00056 print "interval2=", max+interval 00057 fitResults = self.stats["/file0/energy/nobgEnergy"].GetFunction("gaus") 00058 fitChi = fitResults.GetChisquare() 00059 ndf = interval*500-3 00060 fitChi = fitChi / ndf 00061 print "ndf=", ndf 00062 print "fitchi=", fitChi 00063 if oldfitChi > fitChi: 00064 g = i 00065 interval=interval+0.02 00066 oldfitChi = fitChi 00067 00068 interval=0.02+g*0.02 00069 print "interval=", interval 00070 peak1 = TF1("m1","gaus",0,0.75) 00071 peak2 = TF1("m2","gaus",0.75,1.5) 00072 total = TF1("mtotal", "gaus(0) + gaus(3)", 0, 1.5) 00073 #self.stats["/file0/energy/nobgEnergy"].Fit("gaus","","",max-interval,max+2*interval+0.1) 00074 self.stats["/file0/energy/nobgEnergy"].Fit(peak1,"R") 00075 self.stats["/file0/energy/nobgEnergy"].Fit(peak2,"R+") 00076 peak1_0 = peak1.GetParameter(0) 00077 peak1_1 = peak1.GetParameter(1) 00078 peak1_2 = peak1.GetParameter(2) 00079 00080 00081 total = TF1("fit", "[0]*TMath::Gaus(x,[1],[2]) + [3]*TMath::Gaus(x,[1]/2,[2]/sqrt(2))", 0, 1.5) 00082 total.SetParameter(0,peak1_0) 00083 total.SetParameter(1,peak1_1) 00084 total.SetParameter(2,peak1_2) 00085 total.SetParameter(3,0) 00086 00087 self.stats["/file0/energy/nobgEnergy"].Fit(total, "R") 00088 00089 # Uncomment to save 00090 #f = open('FitData', 'a') 00091 #fitResults = self.stats["/file0/energy/nobgEnergy"].GetFunction("gaus") 00092 #for i in range(0,3): 00093 # f.write(repr(fitResults.GetParameter(i))) 00094 # f.write('\n') 00095 #f.write('\n') 00096 #f.close() 00097 canvas.SaveAs("nobgEnergy.png") 00098 00099 status = DybPythonAlg.finalize(self) 00100 return status 00101 00102 ##### Job Configuration for nuwa.py ########################################