50 TH1::AddDirectory(
false);
52 B2DEBUG(1,
"DQMHistReference: reading references from input root file");
55 if (run_type ==
"") run_type =
"default";
57 B2INFO(
"DQMHistReference: run_type " << run_type);
61 if (refFile->IsZombie()) {
62 B2INFO(
"DQMHistReference: reference file " <<
m_referenceFileName <<
" does not exist. No references will be used!");
70 TIter nextRefDirKey(refFile->GetListOfKeys());
72 while ((refDirKey = (TKey*)nextRefDirKey())) {
73 if (refDirKey->IsFolder() &&
string(refDirKey->GetName()) ==
string(
"ref")) {
74 TDirectory* refDir = (TDirectory*)refDirKey->ReadObj();
75 TIter nextDetDirKey(refDir->GetListOfKeys());
78 while ((detDirKey = (TKey*)nextDetDirKey())) {
79 if (!detDirKey->IsFolder())
continue;
80 TDirectory* detDir = ((TDirectory*)detDirKey->ReadObj());
81 TIter nextRunTypeDirKey(detDir->GetListOfKeys());
83 TDirectory* runtypeDir =
nullptr;
85 while ((runtypeDirKey = (TKey*)nextRunTypeDirKey())) {
86 if (!runtypeDirKey->IsFolder())
continue;
87 if (
string(runtypeDirKey->GetName()) == run_type) {
88 if (runtypeDir)
delete runtypeDir;
89 runtypeDir = (TDirectory*)runtypeDirKey->ReadObj();
93 if (
string(runtypeDirKey->GetName()) ==
"default") runtypeDir = (TDirectory*)runtypeDirKey->ReadObj();
95 string detName = detDir->GetName();
98 B2INFO(
"No run type specific or default references available for " << detName);
100 B2INFO(
"Reading reference histograms for " << detName <<
" from run type folder: " << runtypeDir->GetName());
102 TIter nextHistkey(runtypeDir->GetListOfKeys());
105 while ((histKey = (TKey*)nextHistkey())) {
106 if (histKey->IsFolder())
continue;
107 if (gROOT->GetClass(histKey->GetClassName())->InheritsFrom(
"TH1")) {
108 addRefHist(detName, (TH1*)histKey->ReadObj());
119 B2INFO(
"DQMHistReference: read references done");
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.