294 def Finalize(self):
295 h = self.M.h
296 s = 1
297 h['tdcCalib'] = {10:{'L':{},'R':{}},11:{'L':{},'R':{}}}
298 ut.bookCanvas(h,'dummy','',900,600,1,1)
299 h['dummy'].cd()
300 for l in range(self.M.systemAndPlanes[s]):
301 for side in ['L','R']:
302 tname = 'v'+str(l)+side+self.tag
303 ut.bookCanvas(h,tname,tname,2048,2048,8,8)
304 for bar in range(self.M.systemAndBars[s]):
305 h['tdcCalib'][s*10+l][side][bar] = {}
306 for k in range(0,8):
307 h[tname].cd(bar*8+k+1)
308 key = self.M.sdict[s]+str(10+l)+'_'+str(bar)+side+str(k)+self.tag
309 dt = h['dtChan_'+key]
310 if not k == refChannel:
311 rc = dt.Fit('gaus','SQ')
312 result = rc.Get()
313 if result: h['tdcCalib'][s*10+l][side][bar][k]=[result.Parameter(1),result.Parameter(2)]
314 h['dtChan_'+key].Draw()
315
316 ut.bookHist(h,'TDCshiftsMean'+self.tag,'TDCshiftsMean '+self.tag,100,-0.2,0.2)
317 ut.bookHist(h,'TDCshiftsSigma'+self.tag,'TDCshiftsSigma '+self.tag,100,0.,0.25)
318 for l in h['tdcCalib']:
319 for side in h['tdcCalib'][l]:
320 for bar in h['tdcCalib'][l][side]:
321 for k in h['tdcCalib'][l][side][bar]:
322 if k==refChannel: continue
323 rc = h['TDCshiftsMean'+self.tag].Fill(h['tdcCalib'][l][side][bar][k][0])
324 rc = h['TDCshiftsSigma'+self.tag].Fill(h['tdcCalib'][l][side][bar][k][1])
325 ut.bookCanvas(h,'ChannelSummary'+self.tag,'Channel Summary',1200,600,2,1)
326 tc = h['ChannelSummary'+self.tag].cd(1)
327 h['TDCshiftsMean'+self.tag].Draw()
328 tc = h['ChannelSummary'+self.tag].cd(2)
329 h['TDCshiftsSigma'+self.tag].Draw()
330
331 if not self.xCheck:
332 with open('tdcVetoInternalCalibration', 'wb') as fh:
333 pickle.dump(h['tdcCalib'], fh)
334 ut.writeHists(h,'tdcCalib.root')
335 else:
336 ut.writeHists(h,'tdcCalibCor.root')
337