Belle II Software  release-05-01-25
StatisticsTimingHLTDQMModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Chunhua Li, Thomas Hauth, Nils Braun *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <framework/core/HistoModule.h>
13 #include <vector>
14 #include <string>
15 
16 class TH1F;
17 
18 namespace Belle2 {
23  namespace SoftwareTrigger {
25 
29  public:
32 
34  void initialize() override;
35 
37  void event() override;
38 
40  void defineHisto() override;
41 
43  void beginRun() override;
44 
45  private:
48 
51 
53  std::map<std::string, TH1F*> m_moduleTimeHistograms;
54 
56  std::map<std::string, TH1F*> m_moduleMemoryHistograms;
57 
60 
63 
66 
69 
72 
75 
77  std::map<unsigned int, TH1F*> m_fullTimePerUnitHistograms;
78 
80  std::map<unsigned int, TH1F*> m_processingTimePerUnitHistograms;
81 
83  std::map<unsigned int, TH1F*> m_fullMemoryPerUnitHistograms;
84 
86  std::map<unsigned int, TH1F*> m_processingMemoryPerUnitHistograms;
87 
90 
92  double m_lastFullTimeSum = 0;
93 
95  std::map<unsigned int, double> m_lastFullTimeSumPerUnit;
96 
99 
101  std::map<unsigned int, double> m_lastProcessingTimeSumPerUnit;
102 
104  std::map<std::string, double> m_lastModuleTimeSum;
105 
108 
110  std::map<unsigned int, double> m_lastFullMemorySumPerUnit;
111 
114 
116  std::map<unsigned int, double> m_lastProcessingMemorySumPerUnit;
117 
119  std::map<std::string, double> m_lastModuleMemorySum;
120 
123 
125  std::string m_param_histogramDirectoryName = "timing_statistics";
126 
128  std::vector<std::string> m_param_overviewModuleList = {"Sum_Wait", "Sum_Initialization", "Sum_Unpackers", "Sum_EventsofDoomBuster", "Sum_Clustering", "Sum_Tracking", "Sum_Posttracking_Reconstruction", "Sum_HLT_Filter_Calculation", "Sum_HLT_DQM_before_filter", "Sum_HLT_Discard", "Sum_HLT_Skim_Calculation", "Sum_ROI_Finder", "Sum_HLT_DQM_filtered", "Sum_ROI_Payload_Assembler", "Sum_HLT_DQM_all_events", "Sum_Close_Event"};
129 
131  std::vector<std::string> m_summaryModuleList = {"Sum_Initialization", "Sum_Unpackers", "Sum_EventsofDoomBuster", "Sum_Clustering", "Sum_Tracking", "Sum_Posttracking_Reconstruction", "Sum_HLT_Filter_Calculation", "Sum_HLT_DQM_before_filter", "Sum_HLT_Discard", "Sum_HLT_Skim_Calculation", "Sum_ROI_Finder", "Sum_HLT_DQM_filtered", "Sum_ROI_Payload_Assembler", "Sum_HLT_DQM_all_events", "Sum_Close_Event"};
132 
134  int m_hlt_unit = 0;
135 
137  const double m_fullTimeMax = 10000;
138 
140  const double m_fullTimeNBins = 250;
141 
143  const double m_processingTimeMax = 10000;
144 
146  const double m_processingTimeNBins = 250;
147 
149  const double m_fullMemoryMin = -100000;
150 
152  const double m_fullMemoryMax = 100000;
153 
155  const double m_fullMemoryNBins = 500;
156 
158  const double m_processingMemoryMin = -100000;
159 
161  const double m_processingMemoryMax = 100000;
162 
164  const double m_processingMemoryNBins = 500;
165  };
166 
167  }
169 }
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::event
void event() override
Full the histograms.
Definition: StatisticsTimingHLTDQMModule.cc:155
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_param_overviewModuleList
std::vector< std::string > m_param_overviewModuleList
Parameter: which modules should be shown in the overview list.
Definition: StatisticsTimingHLTDQMModule.h:128
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingTimeMax
const double m_processingTimeMax
Maximum for the histograms of processingTime.
Definition: StatisticsTimingHLTDQMModule.h:143
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullMemoryHistogram
TH1F * m_fullMemoryHistogram
Total memory usage distribution of all events.
Definition: StatisticsTimingHLTDQMModule.h:65
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingMemoryHistogram
TH1F * m_processingMemoryHistogram
Memory used for processing distribution of all events.
Definition: StatisticsTimingHLTDQMModule.h:68
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingTimeHistogram
TH1F * m_processingTimeHistogram
Processing time distribution of all events.
Definition: StatisticsTimingHLTDQMModule.h:62
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::initialize
void initialize() override
Define the histograms.
Definition: StatisticsTimingHLTDQMModule.cc:136
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingTimeNBins
const double m_processingTimeNBins
Number of bins for the histograms of processingTime.
Definition: StatisticsTimingHLTDQMModule.h:146
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastModuleTimeSum
std::map< std::string, double > m_lastModuleTimeSum
Storage for the last time sum of certain modules.
Definition: StatisticsTimingHLTDQMModule.h:104
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastFullMemorySumPerUnit
std::map< unsigned int, double > m_lastFullMemorySumPerUnit
Storage for the last full memory sum per unit.
Definition: StatisticsTimingHLTDQMModule.h:110
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullTimeMeanPerUnitHistogram
TH1F * m_fullTimeMeanPerUnitHistogram
Mean budget time of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:71
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingTimePerUnitHistograms
std::map< unsigned int, TH1F * > m_processingTimePerUnitHistograms
Processing time distribution of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:80
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullTimePerUnitHistograms
std::map< unsigned int, TH1F * > m_fullTimePerUnitHistograms
Budget time distribution of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:77
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingMemoryNBins
const double m_processingMemoryNBins
Number of bins for the histograms of processingMemory.
Definition: StatisticsTimingHLTDQMModule.h:164
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::defineHisto
void defineHisto() override
Histogram definition.
Definition: StatisticsTimingHLTDQMModule.cc:45
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_meanMemoryHistogram
TH1F * m_meanMemoryHistogram
Mean memory of certain modules.
Definition: StatisticsTimingHLTDQMModule.h:50
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::beginRun
void beginRun() override
Reset histogram entries.
Definition: StatisticsTimingHLTDQMModule.cc:245
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastFullTimeSumPerUnit
std::map< unsigned int, double > m_lastFullTimeSumPerUnit
Storage for the last full time sum per unit.
Definition: StatisticsTimingHLTDQMModule.h:95
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullTimeNBins
const double m_fullTimeNBins
Number of bins for the histograms of fullTime.
Definition: StatisticsTimingHLTDQMModule.h:140
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_moduleMemoryHistograms
std::map< std::string, TH1F * > m_moduleMemoryHistograms
Memory distribution of certain modules.
Definition: StatisticsTimingHLTDQMModule.h:56
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullMemoryMax
const double m_fullMemoryMax
Maximum for the histograms of fullMemory.
Definition: StatisticsTimingHLTDQMModule.h:152
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullTimeMax
const double m_fullTimeMax
Maximum for the histograms of fullTime.
Definition: StatisticsTimingHLTDQMModule.h:137
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_moduleTimeHistograms
std::map< std::string, TH1F * > m_moduleTimeHistograms
Time distribution of certain modules.
Definition: StatisticsTimingHLTDQMModule.h:53
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_param_create_hlt_unit_histograms
bool m_param_create_hlt_unit_histograms
Parameter: Create HLT unit number histograms?
Definition: StatisticsTimingHLTDQMModule.h:122
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullTimeHistogram
TH1F * m_fullTimeHistogram
Budget time distribution of all events.
Definition: StatisticsTimingHLTDQMModule.h:59
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastProcessingTimeSum
double m_lastProcessingTimeSum
Storage for the last processing time sum.
Definition: StatisticsTimingHLTDQMModule.h:98
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastProcessingMemorySum
double m_lastProcessingMemorySum
Storage for the last processing memory sum.
Definition: StatisticsTimingHLTDQMModule.h:113
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingTimeMeanPerUnitHistogram
TH1F * m_processingTimeMeanPerUnitHistogram
Mean processing time of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:74
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingMemoryMin
const double m_processingMemoryMin
Minimum for the histograms of processingMemory.
Definition: StatisticsTimingHLTDQMModule.h:158
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processesPerUnitHistogram
TH1F * m_processesPerUnitHistogram
Number of processes per unit.
Definition: StatisticsTimingHLTDQMModule.h:89
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastModuleMemorySum
std::map< std::string, double > m_lastModuleMemorySum
Storage for the last memory sum of certain modules.
Definition: StatisticsTimingHLTDQMModule.h:119
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_summaryModuleList
std::vector< std::string > m_summaryModuleList
Summary modules of the actual processing.
Definition: StatisticsTimingHLTDQMModule.h:131
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_meanTimeHistogram
TH1F * m_meanTimeHistogram
Mean time of certain modules.
Definition: StatisticsTimingHLTDQMModule.h:47
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingMemoryPerUnitHistograms
std::map< unsigned int, TH1F * > m_processingMemoryPerUnitHistograms
Memory used for processing distribution of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:86
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_hlt_unit
int m_hlt_unit
Store HLT unit number on initialization.
Definition: StatisticsTimingHLTDQMModule.h:134
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::StatisticsTimingHLTDQMModule
StatisticsTimingHLTDQMModule()
Constructor for module parameters.
Definition: StatisticsTimingHLTDQMModule.cc:29
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastProcessingMemorySumPerUnit
std::map< unsigned int, double > m_lastProcessingMemorySumPerUnit
Storage for the last processing memory sum per unit.
Definition: StatisticsTimingHLTDQMModule.h:116
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullMemoryPerUnitHistograms
std::map< unsigned int, TH1F * > m_fullMemoryPerUnitHistograms
Total memory distribution of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:83
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_param_histogramDirectoryName
std::string m_param_histogramDirectoryName
Parameter: Directory to put the generated histograms.
Definition: StatisticsTimingHLTDQMModule.h:125
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullMemoryNBins
const double m_fullMemoryNBins
Number of bins for the histograms of fullMemory.
Definition: StatisticsTimingHLTDQMModule.h:155
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastFullMemorySum
double m_lastFullMemorySum
Storage for the last full memory sum.
Definition: StatisticsTimingHLTDQMModule.h:107
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullMemoryMin
const double m_fullMemoryMin
Minimum for the histograms of fullMemory.
Definition: StatisticsTimingHLTDQMModule.h:149
Belle2::HistoModule
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastProcessingTimeSumPerUnit
std::map< unsigned int, double > m_lastProcessingTimeSumPerUnit
Storage for the last processing time sum per unit.
Definition: StatisticsTimingHLTDQMModule.h:101
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastFullTimeSum
double m_lastFullTimeSum
Storage for the last full time sum.
Definition: StatisticsTimingHLTDQMModule.h:92
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingMemoryMax
const double m_processingMemoryMax
Maximum for the histograms of processingMemory.
Definition: StatisticsTimingHLTDQMModule.h:161
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule
Module for Event Time Statistics DQM plots.
Definition: StatisticsTimingHLTDQMModule.h:28