9 #include <dqm/analysis/modules/DQMHistAnalysisInputSrv.h>
30 addParam(
"HistMemoryPath", m_mempath,
"Path to Input Hist memory",
string(
""));
31 addParam(
"HistMemorySize", m_memsize,
"Size of Input Hist memory", 10000000);
32 addParam(
"RefreshInterval", m_interval,
"Refresh interval of histograms in ms", 2000);
33 B2DEBUG(20,
"DQMHistAnalysisInputSrv: Constructor done.");
37 DQMHistAnalysisInputSrvModule::~DQMHistAnalysisInputSrvModule() { }
39 void DQMHistAnalysisInputSrvModule::initialize()
41 if (m_memory !=
nullptr)
delete m_memory;
43 m_eventMetaDataPtr.registerInDataStore();
46 B2DEBUG(20,
"DQMHistAnalysisInputSrv: initialized.");
50 void DQMHistAnalysisInputSrvModule::beginRun()
52 B2DEBUG(20,
"DQMHistAnalysisInputSrv: beginRun called.");
55 void DQMHistAnalysisInputSrvModule::event()
58 TMemFile* file = m_memory->LoadMemFile();
60 TIter next(file->GetListOfKeys());
62 while ((key = (TKey*)next())) {
63 h.push_back((TH1*)key->ReadObj());
66 for (
size_t i = 0; i < h.size(); i++) {
67 addHist(
"", h[i]->GetName(), h[i]);
68 B2DEBUG(2,
"Found : " << h[i]->GetName() <<
" : " << h[i]->GetEntries());
69 std::string vname = h[i]->GetName();
70 setFloatValue(vname +
".entries", h[i]->GetEntries());
71 if (h[i]->GetDimension() == 1) {
72 setFloatValue(vname +
".rms", h[i]->GetRMS());
73 setFloatValue(vname +
".rmserr", h[i]->GetRMSError());
74 setFloatValue(vname +
".mean", h[i]->GetMean());
75 setFloatValue(vname +
".meanerr", h[i]->GetMeanError());
76 }
else if (h[i]->GetDimension() == 2) {
77 setFloatValue(vname +
".xrms", h[i]->GetRMS(1));
78 setFloatValue(vname +
".xrmserr", h[i]->GetRMSError(1));
79 setFloatValue(vname +
".xmean", h[i]->GetMean(1));
80 setFloatValue(vname +
".xmeanerr", h[i]->GetMeanError(1));
81 setFloatValue(vname +
".yrms", h[i]->GetRMS(2));
82 setFloatValue(vname +
".yrmserr", h[i]->GetRMSError(2));
83 setFloatValue(vname +
".ymean", h[i]->GetMean(2));
84 setFloatValue(vname +
".ymeanerr", h[i]->GetMeanError(2));
88 m_eventMetaDataPtr.create();
89 m_eventMetaDataPtr->setExperiment(m_expno);
90 m_eventMetaDataPtr->setRun(m_runno);
91 m_eventMetaDataPtr->setEvent(m_count);
93 TTimer t(m_interval, kFALSE);
98 }
while (!t.CheckTimer(gSystem->Now()));
102 void DQMHistAnalysisInputSrvModule::endRun()
104 B2DEBUG(20,
"DQMHistAnalysisInputSrv: endRun called");
108 void DQMHistAnalysisInputSrvModule::terminate()
110 B2DEBUG(20,
"DQMHistAnalysisInputSrv: terminate called");
The base class for the histogram analysis module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Abstract base class for different kinds of events.