179def makeCalibrationHistos(X=options.runNumbers,readHists=True,t0_channel=4):
180 for r in X.split(','):
181 if readHists:
182 F = ROOT.TFile.Open(options.path+"MuFilterEff_run"+str(r)+".root")
183 options.runNumber = r
184 for s in [1,2]:
185 if s==1 and int(r)<100: continue
186 h['tdcCalib'+sdict[s]] = {}
187 for l in range(systemAndPlanes[s]):
188 for bar in range(systemAndBars[s]):
189 for side in ['L','R']:
190 key = sdict[s]+str(s*10+l)+'_'+str(bar)
191 for i in range(systemAndChannels[s][1]+systemAndChannels[s][0]):
192 if i==t0_channel: continue
193 j = side+'_'+key+'-c'+str(i)
194 x = 'TDCcalib'+j
195
196 h['tdcCalib'+sdict[s]][j] =[0,0,0,0]
197 h[x] = F.GetKey(x).ReadObj()
198 if h[x].GetEntries()>10:
199 rc = h[x].Fit('gaus','SNQ')
200 rc = h[x].Fit('gaus','SNQ')
201 if rc:
202 res = rc.Get()
203 h['tdcCalib'+sdict[s]][j] =[res.Parameter(1),res.ParError(1),res.Parameter(2),res.ParError(2)]
204
205 for l in range(systemAndPlanes[s]):
206 tag = sdict[s]+str(l)
207 ut.bookCanvas(h,'sigmaTDC_'+tag,'TDC RMS '+tag,2000,600,systemAndBars[s],2)
208 ut.bookCanvas(h, 'TDCcalib_'+tag,'TDC TDCi-T0 '+tag,2000,600,systemAndBars[s],2)
209 k=1
210 for bar in range(systemAndBars[s]):
211 for side in ['L','R']:
212 key = sdict[s]+str(10*s+l)+'_'+str(bar)
213 for i in range(systemAndChannels[s][1]+systemAndChannels[s][0]):
214 j = side+'_'+key+'-c'+str(i)
215 for x in ['sigmaTDC_'+tag,'TDCcalib_'+tag]:
216 if x.find('calib')>0 and (i==t0_channel): continue
217 tc=h[x].cd(k)
218 opt='same'
219 if i==0 and x.find('calib')<0: opt=""
220 if i==1 and x.find('calib')>0: opt=""
221 aHist = x.split('_')[0]+j
222 h[aHist] = F.GetKey(aHist).ReadObj()
223 h[aHist].SetLineColor(barColor[i])
224 h[aHist].GetXaxis().SetRangeUser(-5,5)
225 h[aHist].Draw(opt)
226 h[aHist].Draw(opt+'HIST')
227 k+=1
228 myPrint(h['sigmaTDC_'+tag],'TDC/TDCrms_'+tag)
229 myPrint(h['TDCcalib_'+tag],'TDC/TDCcalib_'+tag)
230
231 ut.bookHist(h,'TDCcalibMean_'+tag,';SiPM channel ; [ns]',160,0.,160.)
232 ut.bookHist(h,'TDCcalibSigma_'+tag,';SiPM channel ; [ns]',160,0.,160.)
233 h['gTDCcalibMean_'+tag]=ROOT.TGraphErrors()
234 h['gTDCcalibSigma_'+tag]=ROOT.TGraphErrors()
235
236 for x in h['tdcCalib'+sdict[s]]:
237 tmp = h['tdcCalib'+sdict[s]][x]
238 side = 0
239 z = x.split('_')
240 if z[0]=='R': side = 1
241 l = z[1][len(z[1])-1]
242 bar = z[2][0]
243 c = z[2].split('c')[1]
244 xbin = int(bar)*16+side*8+int(c)
245 tag = sdict[s]+str(l)
246 rc = h['TDCcalibMean_'+tag].SetBinContent(xbin+1,tmp[0])
247 rc = h['TDCcalibMean_'+tag].SetBinError(xbin+1,tmp[1])
248 rc = h['TDCcalibSigma_'+tag].SetBinContent(xbin+1,tmp[2])
249 rc = h['TDCcalibSigma_'+tag].SetBinError(xbin+1,tmp[3])
250
251 ut.bookCanvas(h,'tTDCcalib_'+sdict[s],'TDC calib '+sdict[s],2400,1800,2,systemAndPlanes[s])
252 for l in range(systemAndPlanes[s]):
253 tag = sdict[s]+str(l)
254 aHistS = h['TDCcalibSigma_'+tag]
255 aHistM = h['TDCcalibMean_'+tag]
256 k=0
257 for i in range(1,aHistS.GetNbinsX()):
258 if aHistS.GetBinContent(i)>0:
259 h['gTDCcalibSigma_'+tag].SetPoint(k,i-1,aHistS.GetBinContent(i))
260 h['gTDCcalibSigma_'+tag].SetPointError(k,0.5,aHistS.GetBinError(i))
261 h['gTDCcalibMean_'+tag].SetPoint(k,i-1,aHistM.GetBinContent(i))
262 h['gTDCcalibMean_'+tag].SetPointError(k,0.5,aHistM.GetBinError(i))
263 k+=1
264
265 planeColor = {0:ROOT.kBlue,1:ROOT.kRed,2:ROOT.kGreen,3:ROOT.kCyan,4:ROOT.kMagenta}
266 for l in range(systemAndPlanes[s]):
267 tag = sdict[s]+str(l)
268 tc = h['tTDCcalib_'+sdict[s]].cd(2*l+1)
269 aHistS = h['TDCcalibSigma_'+tag]
270 aHistS.Reset()
271 aHistS.SetMaximum(2.0)
272 aHistS.Draw()
273 h['gTDCcalibSigma_'+tag].SetLineColor(planeColor[l])
274 h['gTDCcalibSigma_'+tag].Draw('same')
275
276 for l in range(systemAndPlanes[s]):
277 tag = sdict[s]+str(l)
278 tc = h['tTDCcalib_'+sdict[s]].cd(2*l+2)
279 aHistM = h['TDCcalibMean_'+tag]
280 aHistM.Reset()
281 aHistM.SetMaximum(2.0)
282 aHistM.SetMinimum(-2.0)
283 aHistM.Draw()
284 h['gTDCcalibMean_'+tag].SetLineColor(planeColor[l])
285 h['gTDCcalibMean_'+tag].Draw('same')
286 myPrint(h['tTDCcalib_'+sdict[s]],'TDC/TDCcalibration_'+sdict[s])
287
288