Belle II Software  release-05-02-19
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 
74  std::map<unsigned int, TH1F*> m_fullTimePerUnitHistograms;
75 
77  std::map<unsigned int, TH1F*> m_processingTimePerUnitHistograms;
78 
80  std::map<unsigned int, TH1F*> m_fullMemoryPerUnitHistograms;
81 
84 
86  double m_lastFullTimeSum = 0;
87 
89  std::map<unsigned int, double> m_lastFullTimeSumPerUnit;
90 
93 
95  std::map<unsigned int, double> m_lastProcessingTimeSumPerUnit;
96 
98  std::map<std::string, double> m_lastModuleTimeSum;
99 
102 
104  std::string m_param_histogramDirectoryName = "timing_statistics";
105 
107  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"};
108 
110  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"};
111 
113  int m_hlt_unit = 0;
114 
116  const double m_fullTimeMax = 10000;
117 
119  const double m_fullTimeNBins = 250;
120 
122  const double m_processingTimeMax = 10000;
123 
125  const double m_processingTimeNBins = 250;
126 
128  const double m_fullMemoryMax = 4000;
129 
131  const double m_fullMemoryNBins = 100;
132  };
133 
134  }
136 }
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::event
void event() override
Full the histograms.
Definition: StatisticsTimingHLTDQMModule.cc:141
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:107
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingTimeMax
const double m_processingTimeMax
Maximum for the histograms of processingTime.
Definition: StatisticsTimingHLTDQMModule.h:122
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullMemoryHistogram
TH1F * m_fullMemoryHistogram
Total memory usage distribution of all events.
Definition: StatisticsTimingHLTDQMModule.h:65
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:122
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingTimeNBins
const double m_processingTimeNBins
Number of bins for the histograms of processingTime.
Definition: StatisticsTimingHLTDQMModule.h:125
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastModuleTimeSum
std::map< std::string, double > m_lastModuleTimeSum
Storage for the last time sum of certain modules.
Definition: StatisticsTimingHLTDQMModule.h:98
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullTimeMeanPerUnitHistogram
TH1F * m_fullTimeMeanPerUnitHistogram
Mean budget time of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:68
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingTimePerUnitHistograms
std::map< unsigned int, TH1F * > m_processingTimePerUnitHistograms
Processing time distribution of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:77
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullTimePerUnitHistograms
std::map< unsigned int, TH1F * > m_fullTimePerUnitHistograms
Budget time distribution of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:74
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:222
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastFullTimeSumPerUnit
std::map< unsigned int, double > m_lastFullTimeSumPerUnit
Storage for the last full time sum per unit.
Definition: StatisticsTimingHLTDQMModule.h:89
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullTimeNBins
const double m_fullTimeNBins
Number of bins for the histograms of fullTime.
Definition: StatisticsTimingHLTDQMModule.h:119
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:128
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullTimeMax
const double m_fullTimeMax
Maximum for the histograms of fullTime.
Definition: StatisticsTimingHLTDQMModule.h:116
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:101
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:92
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processingTimeMeanPerUnitHistogram
TH1F * m_processingTimeMeanPerUnitHistogram
Mean processing time of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:71
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_processesPerUnitHistogram
TH1F * m_processesPerUnitHistogram
Number of processes per unit.
Definition: StatisticsTimingHLTDQMModule.h:83
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_summaryModuleList
std::vector< std::string > m_summaryModuleList
Summary modules of the actual processing.
Definition: StatisticsTimingHLTDQMModule.h:110
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_meanTimeHistogram
TH1F * m_meanTimeHistogram
Mean time of certain modules.
Definition: StatisticsTimingHLTDQMModule.h:47
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_hlt_unit
int m_hlt_unit
Store HLT unit number on initialization.
Definition: StatisticsTimingHLTDQMModule.h:113
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::StatisticsTimingHLTDQMModule
StatisticsTimingHLTDQMModule()
Constructor for module parameters.
Definition: StatisticsTimingHLTDQMModule.cc:29
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullMemoryPerUnitHistograms
std::map< unsigned int, TH1F * > m_fullMemoryPerUnitHistograms
Total memory distribution of events per unit.
Definition: StatisticsTimingHLTDQMModule.h:80
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_param_histogramDirectoryName
std::string m_param_histogramDirectoryName
Parameter: Directory to put the generated histograms.
Definition: StatisticsTimingHLTDQMModule.h:104
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_fullMemoryNBins
const double m_fullMemoryNBins
Number of bins for the histograms of fullMemory.
Definition: StatisticsTimingHLTDQMModule.h:131
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:95
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule::m_lastFullTimeSum
double m_lastFullTimeSum
Storage for the last full time sum.
Definition: StatisticsTimingHLTDQMModule.h:86
Belle2::SoftwareTrigger::StatisticsTimingHLTDQMModule
Module for Event Time Statistics DQM plots.
Definition: StatisticsTimingHLTDQMModule.h:28