10 #include <hlt/softwaretrigger/modules/dqm/StatisticsTimingHLTDQMModule.h>
11 #include <hlt/softwaretrigger/modules/dqm/SoftwareTriggerHLTDQMModule.h>
13 #include <framework/datastore/StoreObjPtr.h>
14 #include <framework/core/ProcessStatistics.h>
15 #include <framework/core/ModuleStatistics.h>
16 #include <framework/gearbox/Unit.h>
18 #include <TDirectory.h>
25 using namespace SoftwareTrigger;
31 setDescription(
"Monitor reconstruction runtime on HLT");
32 setPropertyFlags(c_ParallelProcessingCertified);
34 addParam(
"histogramDirectoryName", m_param_histogramDirectoryName,
35 "Runtime DQM histograms on HLT will be put into this directory", m_param_histogramDirectoryName);
37 addParam(
"m_param_overviewModuleList", m_param_overviewModuleList,
38 "Which modules should be shown in the overview mean list", m_param_overviewModuleList);
40 addParam(
"createHLTUnitHistograms", m_param_create_hlt_unit_histograms,
41 "Create HLT unit histograms?",
48 TDirectory* oldDirectory =
nullptr;
51 oldDirectory = gDirectory;
136 B2WARNING(
"HLT unit number not found");
145 if (not stats.isValid()) {
149 const std::vector<ModuleStatistics>& moduleStatisticsList = stats->getAll();
155 const std::string& statisticsName = moduleStatistics.getName();
162 const double statisticsTime = moduleStatistics.getTimeMean(ModuleStatistics::EStatisticCounters::c_Event) /
Unit::ms;
163 const double statisticsMemory = moduleStatistics.getMemoryMean(ModuleStatistics::EStatisticCounters::c_Total) / 1024;
164 const double statisticsTime_sum = moduleStatistics.getTimeSum(ModuleStatistics::EStatisticCounters::c_Event) /
Unit::ms;
165 const double statisticsMemory_sum = moduleStatistics.getMemorySum(ModuleStatistics::EStatisticCounters::c_Total) / 1024;
167 const int m_param_overviewModuleListIndex = std::distance(
m_param_overviewModuleList.begin(), m_param_overviewModuleListIterator);
168 meanTimes[m_param_overviewModuleListIndex] += statisticsTime;
169 meanMemories[m_param_overviewModuleListIndex] += statisticsMemory;
181 double processingTimeSum = 0.0;
182 double processingTimeMean = 0.0;
185 const std::string& statisticsName = moduleStatistics.getName();
191 processingTimeSum += moduleStatistics.getTimeSum(ModuleStatistics::EStatisticCounters::c_Event) /
Unit::ms;
192 processingTimeMean += moduleStatistics.getTimeMean(ModuleStatistics::EStatisticCounters::c_Event) /
Unit::ms;
198 const double fullTimeSum = fullStatistics.
getTimeSum(ModuleStatistics::EStatisticCounters::c_Event) /
Unit::ms;
201 const double fullMemorySum = fullStatistics.
getMemorySum(ModuleStatistics::EStatisticCounters::c_Total) / 1024;
211 const double fullTimeMean = fullStatistics.
getTimeMean(ModuleStatistics::EStatisticCounters::c_Event) /
Unit::ms;
225 B2FATAL(
"Histograms were not created. Did you setup a HistoManager?");
231 [](
auto & it) { it.second->Reset(); });
233 [](
auto & it) { it.second->Reset(); });
241 [](
auto & it) { it.second->Reset(); });
243 [](
auto & it) { it.second->Reset(); });
245 [](
auto & it) { it.second->Reset(); });