197 print(
"------------------------------------------")
198 print(
"Begin Yearwise Efficiency Plots vs Time")
199 print(
"------------------------------------------")
209 print(
"year = ", year)
210 grl = pt.get_grl(year)
214 maindir = args.indir + dir_2023
215 print(
"2023 grl = ", grl)
219 maindir = args.indir + dir_2022
220 print(
"2022 grl = ", grl)
224 print(
'Begin Run ', run,
'processing')
226 dfz = pd.read_csv(maindir +
"run_" + run +
".csv")
228 dfz_small[
'ZLumi'] = dfz_small[channel +
'Lumi']
229 dfz_small[
'ZLumiErr'] = dfz_small[channel +
'LumiErr']
230 dfz_small[
'TrigEff'] = dfz_small[channel +
'EffTrig']
231 dfz_small[
'TrigErr'] = dfz_small[channel +
'ErrTrig']
232 dfz_small[
'RecoEff'] = dfz_small[channel +
'EffReco']
233 dfz_small[
'RecoErr'] = dfz_small[channel +
'ErrReco']
234 dfz_small[
'LBLive'] = dfz_small[
'LBLive']
235 dfz_small = dfz_small.drop(dfz_small[dfz_small.ZLumi == 0].index)
236 dfz_small = dfz_small.drop(dfz_small[(dfz_small[
'LBLive']<10) | (dfz_small[
'PassGRL']==0)].index)
239 if dfz_small[
'LBLive'].
sum()/60 < 40:
240 print(
"Skip Run", run,
"because of live time", dfz_small[
'LBLive'].
sum()/60,
"min")
244 run_start = dfz_small[
'LBStart'].iloc[0]
245 timestamp = time.gmtime(run_start)
246 timestamp = R.TDatime(timestamp[0], timestamp[1], timestamp[2], timestamp[3], timestamp[4], timestamp[5])
247 timestamp = timestamp.Convert()
250 dfz_small[
'TrigEff'] *= dfz_small[
'LBLive']
251 total_time = dfz_small[
'LBLive'].
sum()
252 trig_eff_avg = dfz_small[
'TrigEff'].
sum()/total_time
255 dfz_small[
'RecoEff'] *= dfz_small[
'LBLive']
256 total_time = dfz_small[
'LBLive'].
sum()
257 reco_eff_avg = dfz_small[
'RecoEff'].
sum()/total_time
260 dfz_small[
'TrigErr'] *= dfz_small[
'LBLive']
261 dfz_small[
'TrigErr'] *= dfz_small[
'TrigErr']
262 total_time = dfz_small[
'LBLive'].
sum()
263 trig_err_avg = math.sqrt(dfz_small[
'TrigErr'].
sum())/total_time
266 dfz_small[
'RecoErr'] *= dfz_small[
'LBLive']
267 dfz_small[
'RecoErr'] *= dfz_small[
'RecoErr']
268 total_time = dfz_small[
'LBLive'].
sum()
269 reco_err_avg = math.sqrt(dfz_small[
'RecoErr'].
sum())/total_time
271 arr_date.append(timestamp)
272 arr_trigeff.append(trig_eff_avg)
273 arr_trigerr.append(trig_err_avg)
274 arr_recoeff.append(reco_eff_avg)
275 arr_recoerr.append(reco_err_avg)
278 arr_date =
array(
'd', arr_date)
280 arr_trigeff = np.array(arr_trigeff)
281 arr_trigerr = np.array(arr_trigerr)
282 arr_recoeff = np.array(arr_recoeff)
283 arr_recoerr = np.array(arr_recoerr)
287 channel_string =
"Z #rightarrow ee"
288 ymin, ymax = 0.64, 0.96
289 elif channel ==
"Zmumu":
291 channel_string =
"Z #rightarrow #mu#mu"
292 ymin, ymax = 0.64, 0.96
294 trig_graph = R.TGraphErrors(len(arr_date), arr_date, arr_trigeff, R.nullptr,arr_trigerr)
295 trig_graph.GetHistogram().SetYTitle(
"Efficiency")
296 trig_graph.GetHistogram().GetYaxis().SetRangeUser(ymin, ymax)
297 trig_graph.GetXaxis().SetTimeDisplay(2)
298 trig_graph.GetXaxis().SetNdivisions(9,R.kFALSE)
299 trig_graph.GetXaxis().SetTimeFormat(time_format)
300 trig_graph.GetXaxis().SetTimeOffset(0,
"gmt")
301 trig_graph.SetMarkerSize(1)
303 reco_graph = R.TGraphErrors(len(arr_date), arr_date, arr_recoeff, R.nullptr,arr_recoerr)
304 reco_graph.GetHistogram().GetYaxis().SetRangeUser(ymin, ymax)
305 reco_graph.GetXaxis().SetTimeDisplay(2)
306 reco_graph.GetXaxis().SetNdivisions(9,R.kFALSE)
307 reco_graph.GetXaxis().SetTimeFormat(time_format)
308 reco_graph.GetXaxis().SetTimeOffset(0,
"gmt")
309 reco_graph.SetMarkerSize(1)
310 reco_graph.SetMarkerStyle(21)
311 reco_graph.SetMarkerColor(R.kRed)
312 reco_graph.SetLineColor(R.kRed)
316 trig_graph.Draw(
"ap")
321 leg = R.TLegend(0.645, 0.2, 0.805, 0.4)
322 pt.drawAtlasLabel(0.2, ymax-0.64,
"Internal")
323 if year
in [
'15',
'16',
'17',
'18']:
324 pt.drawText(0.2, ymax-0.70, date_tag)
326 pt.drawText(0.2, ymax-0.70, date_tag)
327 pt.drawText(0.2, ymax-0.76, channel_string +
" counting")
329 elif channel ==
"Zmumu":
331 leg = R.TLegend(0.645, 0.45, 0.805, 0.65)
332 pt.drawAtlasLabel(0.2, ymax-0.36,
"Internal")
333 if year
in [
'15',
'16',
'17',
'18']:
334 pt.drawText(0.2, ymax-0.42, date_tag)
336 pt.drawText(0.2, ymax-0.42, date_tag)
337 pt.drawText(0.2, ymax-0.48, channel_string +
" counting")
340 leg.SetTextSize(0.07)
341 leg.AddEntry(reco_graph,
"#varepsilon_{reco}^{single-"+lep+
"}",
"ep")
342 leg.AddEntry(trig_graph,
"#varepsilon_{trig}^{single-"+lep+
"}",
"ep")
347 new_trig_line = R.TLine(1683743066.0, ymin, 1683743066.0, ymax)
348 new_trig_line.SetLineColor(R.kBlue)
349 new_trig_line.SetLineWidth(3)
350 new_trig_line.SetLineStyle(2)
351 new_trig_line.Draw(
"same")
354 trig_graph.GetHistogram().SetXTitle(
"Date")
355 c1.SaveAs(outdir +
"eff_v_time_"+channel+
"_data"+out_tag+
"_"+
".eps")
356 c1.SaveAs(outdir +
"eff_v_time_"+channel+
"_data"+out_tag+
"_"+
".pdf")