12 #include <dqm/analysis/modules/DQMHistAnalysisTRGGDL.h>
15 #include <dqm/analysis/modules/DQMHistAnalysis.h>
38 DQMHistAnalysisTRGGDLModule::DQMHistAnalysisTRGGDLModule()
42 setDescription(
"Modify and analyze the data quality histograms of TRGGDL");
51 if (ca_current_context()) ca_context_destroy();
59 for (
unsigned iskim = 0; iskim <
nskim_gdldqm; iskim++) {
60 char charhist_eff[1000];
61 sprintf(charhist_eff,
"hGDL_ana_eff_%s",
skim_smap[iskim].c_str());
63 for (
int i = 0; i <
n_eff; i++) {
64 m_h_eff[iskim]->GetXaxis()->SetBinLabel(i + 1,
c_eff[i]);
66 char charhist_c_eff[1000];
67 sprintf(charhist_c_eff,
"TRGGDL/hGDL_ana_eff_%s",
skim_smap[iskim].c_str());
68 m_c_eff[iskim] =
new TCanvas(charhist_c_eff);
89 if (!ca_current_context()) SEVCHK(ca_context_create(ca_disable_preemptive_callback),
"ca_context_create");
91 std::string aa =
"TRGAna:eff_shift_" + std::to_string(i);
92 SEVCHK(ca_create_channel(aa.c_str(), NULL, NULL, 10, &mychid[i]),
"ca_create_channel failure");
97 std::string aa =
"TRGAna:entry_" + std::to_string(i);
98 SEVCHK(ca_create_channel(aa.c_str(), NULL, NULL, 10, &mychid_entry[i]),
"ca_create_channel failure");
100 SEVCHK(ca_pend_io(5.0),
"ca_pend_io failure");
103 B2DEBUG(20,
"DQMHistAnalysisTRGGDL: initialized.");
113 for (
unsigned iskim = 0; iskim <
nskim_gdldqm; iskim++) {
117 sprintf(c_psn,
"TRGGDL/hGDL_psn_extra_%s",
skim_smap[iskim].c_str());
121 B2WARNING(
"Histogram/canvas named hGDL_psn_extra is not found.");
126 if (
m_h_psn_extra[iskim]->GetBinContent(0 + 1) == 0)
continue;
127 if (
m_h_psn_extra[iskim]->GetBinContent(5 + 1) == 0)
continue;
153 if (
m_h_psn_extra[iskim]->GetBinContent(6 + 1) == 0)
continue;
223 if (
m_h_psn_extra[iskim]->GetBinContent(14 + 1) == 0)
continue;
329 B2WARNING(
"Histogram/canvas named hGDL_psn_pure_extra is not found.");
357 for (
unsigned iskim = 0; iskim <
nskim_gdldqm; iskim++) {
374 double eff_err_min = eff - 2 * err;
375 double eff_err_max = eff + 2 * err;
402 if (mychid[i]) SEVCHK(ca_put(DBR_DOUBLE, mychid[i], (
void*)&data),
"ca_set failure");
407 B2WARNING(
"Histogram/canvas named hGDL_psn_extra is not found.");
409 B2WARNING(
"Histogram/canvas named hGDL_psn_extra is not found.");
411 if (i == 0 || i == 6) {
418 if (mychid_entry[i]) SEVCHK(ca_put(DBR_DOUBLE, mychid_entry[i], (
void*)&data),
"ca_set failure");
420 SEVCHK(ca_pend_io(5.0),
"ca_pend_io failure");
427 B2DEBUG(20,
"DQMHistAnalysisTRGGDL : endRun called");
434 if (mychid[i]) SEVCHK(ca_clear_channel(mychid[i]),
"ca_clear_channel failure");
437 if (mychid_entry[i]) SEVCHK(ca_clear_channel(mychid_entry[i]),
"ca_clear_channel failure");
439 SEVCHK(ca_pend_io(5.0),
"ca_pend_io failure");
441 B2DEBUG(20,
"terminate called");
446 TIter nextckey(gROOT->GetListOfCanvases());
447 TObject* cobj = NULL;
449 while ((cobj = (TObject*)nextckey())) {
450 if (cobj->IsA()->InheritsFrom(
"TCanvas")) {
451 if (cobj->GetName() == canvas_name)
455 return (TCanvas*)cobj;