60 if (mf.GetSize() < 1000.) {
67 static const std::string sac[2] = {
70 static const std::string sws[2] = {
74 TIter next_run(mf.GetListOfKeys());
77 while ((key_run =
dynamic_cast<TKey*
> (next_run())) != 0) {
78 if (!key_run->IsFolder())
continue;
79 std::string run_dir = key_run->GetName();
80 if (run_dir.find(
"run") == std::string::npos)
continue;
82 std::string run_dir2 = run_dir;
97 std::string tgc_dir = run_dir +
"/Muon/MuonRawDataMonitoring/TGC/";
99 std::string tgc_global_dir = tgc_dir +
"Global/";
100 std::string tgc_sub_dir[2] = {
101 tgc_dir +
"TGCEA/", tgc_dir +
"TGCEC/"
104 for (
int ac = 0; ac < 2; ac++) {
105 std::string eff_dir = tgc_sub_dir[ac] +
"Efficiency/";
106 TDirectory* dir = mf.GetDirectory(eff_dir.c_str());
113 ss <<
"Efficiency" << sac[ac];
114 seff = eff_dir +
ss.str();
116 ss <<
"Efficiency" << sac[ac] <<
"_Numerator";
117 snum = eff_dir +
"NumDenom/" +
ss.str();
119 ss <<
"Efficiency" << sac[ac] <<
"_Denominator";
120 sden = eff_dir +
"NumDenom/" +
ss.str();
123 mf.get(seff.c_str(), h1eff);
125 mf.get(snum.c_str(), h1num);
127 mf.get(sden.c_str(), h1den);
129 if (h1eff && h1num && h1den) {
131 h1eff->Divide(h1num, h1den, 1., 1.,
"B");
135 h1eff->Write(
"", TObject::kOverwrite);
141 for (
int ws = 0; ws < 2; ws++) {
143 ss << sws[ws] <<
"Efficiency" << sac[ac];
144 seff = eff_dir +
ss.str();
146 ss << sws[ws] <<
"Efficiency" << sac[ac] <<
"_Numerator";
147 snum = eff_dir +
"NumDenom/" +
ss.str();
149 ss << sws[ws] <<
"Efficiency" << sac[ac] <<
"_Denominator";
150 sden = eff_dir +
"NumDenom/" +
ss.str();
153 mf.get(seff.c_str(), h1eff);
155 mf.get(snum.c_str(), h1num);
157 mf.get(sden.c_str(), h1den);
159 if (h1eff && h1num && h1den) {
161 h1eff->Divide(h1num, h1den, 1., 1.,
"B");
165 h1eff->Write(
"", TObject::kOverwrite);
173 for (
int bc = 0; bc < 3; bc++) {
175 ss << sws[ws] <<
"Efficiency_Map" << sbc[bc] << sac[ac];
176 seff = eff_dir +
ss.str();
178 ss << sws[ws] <<
"Efficiency_Map" << sbc[bc] << sac[ac] <<
"_Numerator";
179 snum = eff_dir +
"NumDenom/" +
ss.str();
181 ss << sws[ws] <<
"Efficiency_Map" << sac[ac] <<
"_Denominator";
182 sden = eff_dir +
"NumDenom/" +
ss.str();
185 mf.get(seff.c_str(), h2eff);
187 mf.get(snum.c_str(), h2num);
189 mf.get(sden.c_str(), h2den);
191 if (h2eff && h2num && h2den) {
193 h2eff->Divide(h2num, h2den, 1., 1.,
"B");
197 h2eff->Write(
"", TObject::kOverwrite);
220 if (mf.GetSize() < 1000.) {
234 std::stringstream
ss;
235 static const std::string sac[2] = {
240 TIter next_run(mf.GetListOfKeys());
242 while ((key_run =
dynamic_cast<TKey*
> (next_run())) != 0) {
243 if (!key_run->IsFolder())
continue;
244 std::string run_dir = key_run->GetName();
245 if (run_dir.find(
"run") == std::string::npos)
continue;
247 std::string run_dir2 = run_dir;
261 TGraphAsymmErrors* geff(0);
264 std::string tgc_dir = run_dir +
"/Muon/MuonRawDataMonitoring/TGCLV1/";
266 std::string tgc_global_dir = tgc_dir +
"Global/";
267 std::string tgc_sub_dir[2] = {
268 tgc_dir +
"TGCEA/", tgc_dir +
"TGCEC/"
273 for (
int ac = 0; ac < 2; ac++) {
274 std::string eff_dir = tgc_sub_dir[ac] +
"Eff/";
275 TDirectory* dir = mf.GetDirectory(eff_dir.c_str());
281 for (
int pt = 1; pt <= 6; pt++) {
282 for (
int pna = 0; pna < 3; pna++) {
283 for (
int muid = 0; muid < 2; muid++) {
284 for (
int pcn = 0; pcn < 3; pcn++) {
285 std::string tempeff, tempnum, tempden;
288 ss <<
"Trigger_Efficiency" << spna[pna] << sbc[pcn] <<
"_PT" << pt << smuid[muid] << sac[ac];
289 seff = eff_dir +
ss.str();
292 ss <<
"Trigger_Efficiency" << spna[pna] << sbc[pcn] <<
"_PT" << pt << smuid[muid] << sac[ac] <<
294 snum = eff_dir +
"NumDenom/" +
ss.str();
297 ss <<
"Trigger_Efficiency" << spna[pna] <<
"_PT" << pt << smuid[muid] << sac[ac] <<
"_Denominator";
298 sden = eff_dir +
"NumDenom/" +
ss.str();
302 mf.get(seff.c_str(), h2eff);
304 mf.get(snum.c_str(), h2num);
306 mf.get(sden.c_str(), h2den);
307 if (h2eff && h2num && h2den) {
309 h2eff->Divide(h2num, h2den, 1., 1.,
"B");
312 dir = mf.GetDirectory(eff_dir.c_str());
314 h2eff->Write(
"", TObject::kOverwrite);
324 ss <<
"Trigger_Turn_On_Curve" << spna[pna] <<
"_PT" << pt << smuid[muid] << sac[ac];
325 seff = eff_dir +
ss.str();
327 seffg = eff_dir +
ss.str();
329 ss <<
"Trigger_Turn_On_Curve" << spna[pna] <<
"_PT" << pt << smuid[muid] << sac[ac] <<
"_Numerator";
330 snum = eff_dir +
"NumDenom/" +
ss.str();
332 ss <<
"Trigger_Turn_On_Curve" << spna[pna] <<
"_PT" << pt << smuid[muid] << sac[ac] <<
"_Denominator";
333 sden = eff_dir +
"NumDenom/" +
ss.str();
336 mf.get(seff.c_str(), h1eff);
338 mf.get(snum.c_str(), h1num);
340 mf.get(sden.c_str(), h1den);
342 mf.get(seffg.c_str(), geff);
344 if (h1eff && h1num && h1den) {
346 h1eff->Divide(h1num, h1den, 1., 1.,
"B");
349 dir = mf.GetDirectory(eff_dir.c_str());
351 h1eff->Write(
"", TObject::kOverwrite);
354 geff->BayesDivide(h1num, h1den);
357 dir = mf.GetDirectory(eff_dir.c_str());
359 geff->Write(
"", TObject::kOverwrite);
371 std::string grate_dir = tgc_global_dir +
"Rate/";
372 std::string rate_dir = tgc_sub_dir[ac] +
"Rate/";
373 std::string rr_dir = tgc_sub_dir[ac] +
"Rate/Ratio/";
374 dir = mf.GetDirectory(rr_dir.c_str());
382 ss <<
"Number_Of_PT" << pt <<
"_Triggers_Per_Event_Vs_10BCID" << sac[ac];
383 seff = rr_dir +
ss.str();
385 ss <<
"Number_Of_PT" << pt <<
"_Triggers_In_10BCID" << sac[ac];
386 snum = rate_dir +
ss.str();
388 ss <<
"Number_Of_Events_In_10BCID";
389 sden = grate_dir +
ss.str();
392 mf.get(seff.c_str(), h1eff);
394 mf.get(snum.c_str(), h1num);
396 mf.get(sden.c_str(), h1den);
398 if (h1eff && h1num && h1den) {
400 h1eff->Divide(h1num, h1den);
404 h1eff->Write(
"", TObject::kOverwrite);
412 ss <<
"Number_Of_PT" << pt <<
"_Triggers_Per_Event_Vs_2LB" << sac[ac];
413 seff = rr_dir +
ss.str();
415 ss <<
"Number_Of_PT" << pt <<
"_Triggers_In_2LB" << sac[ac];
416 snum = rate_dir +
ss.str();
418 ss <<
"Number_Of_Events_In_2LB";
419 sden = grate_dir +
ss.str();
422 mf.get(seff.c_str(), h1eff);
424 mf.get(snum.c_str(), h1num);
426 mf.get(sden.c_str(), h1den);
428 if (h1eff && h1num && h1den) {
430 h1eff->Divide(h1num, h1den);
434 h1eff->Write(
"", TObject::kOverwrite);
443 std::string grate_dir = tgc_global_dir +
"Rate/";
444 std::string rate_dir = tgc_sub_dir[ac] +
"Rate/";
445 std::string rr_dir = tgc_sub_dir[ac] +
"Rate/Ratio/";
449 ss <<
"Number_Of_SL_Triggers_Per_Event_Vs_10BCID" << sac[ac];
450 seff = rr_dir +
ss.str();
452 ss <<
"Number_Of_SL_Triggers_In_10BCID" << sac[ac];
453 snum = rate_dir +
ss.str();
455 ss <<
"Number_Of_Events_In_10BCID";
456 sden = grate_dir +
ss.str();
459 mf.get(seff.c_str(), h1eff);
461 mf.get(snum.c_str(), h1num);
463 mf.get(sden.c_str(), h1den);
465 if (h1eff && h1num && h1den) {
467 h1eff->Divide(h1num, h1den);
470 dir = mf.GetDirectory(rr_dir.c_str());
472 h1eff->Write(
"", TObject::kOverwrite);
480 ss <<
"Number_Of_SL_Triggers_Per_Event_Vs_2LB" << sac[ac];
481 seff = rr_dir +
ss.str();
483 ss <<
"Number_Of_SL_Triggers_In_2LB" << sac[ac];
484 snum = rate_dir +
ss.str();
486 ss <<
"Number_Of_Events_In_2LB";
487 sden = grate_dir +
ss.str();
490 mf.get(seff.c_str(), h1eff);
492 mf.get(snum.c_str(), h1num);
494 mf.get(sden.c_str(), h1den);
496 if (h1eff && h1num && h1den) {
498 h1eff->Divide(h1num, h1den);
502 h1eff->Write(
"", TObject::kOverwrite);