artdaq  v3_04_00
StatisticsHelper.hh
1 #ifndef artdaq_Application_MPI2_StatisticsHelper_hh
2 #define artdaq_Application_MPI2_StatisticsHelper_hh
3 
4 #include "artdaq-core/Core/StatisticsCollection.hh"
5 #include "fhiclcpp/ParameterSet.h"
6 #include <vector>
7 
8 namespace artdaq
9 {
10  class StatisticsHelper;
11 }
12 
17 {
18 public:
23 
27  StatisticsHelper(StatisticsHelper const&) = delete;
28 
32  virtual ~StatisticsHelper() = default;
33 
39 
44  void addMonitoredQuantityName(std::string const& statKey);
45 
51  void addSample(std::string const& statKey, double value) const;
52 
68  bool createCollectors(fhicl::ParameterSet const& pset,
69  int defaultReportIntervalFragments,
70  double defaultReportIntervalSeconds,
71  double defaultMonitorWindow,
72  std::string const& primaryStatKeyName);
73 
77  void resetStatistics();
78 
84  bool readyToReport(size_t currentCount);
85 
91 
92 private:
93  std::vector<std::string> monitored_quantity_name_list_;
94  artdaq::MonitoredQuantityPtr primary_stat_ptr_;
95 
96  int reporting_interval_fragments_;
97  double reporting_interval_seconds_;
98  size_t previous_reporting_index_;
99  MonitoredQuantityStats::TIME_POINT_T previous_stats_calc_time_;
100 };
101 
102 #endif /* artdaq_Application_MPI2_StatisticsHelper_hh */
This class manages MonitoredQuantity instances for the *Core classes.
void addMonitoredQuantityName(std::string const &statKey)
Add a MonitoredQuantity name to the list.
bool statsRollingWindowHasMoved()
Determine if the MonitoredQuantity &quot;recent&quot; window has changed since the last time this function was ...
bool readyToReport(size_t currentCount)
Determine if the reporting interval conditions have been met.
virtual ~StatisticsHelper()=default
Default Destructor.
void addSample(std::string const &statKey, double value) const
Add a sample to the MonitoredQuantity with the given name.
bool createCollectors(fhicl::ParameterSet const &pset, int defaultReportIntervalFragments, double defaultReportIntervalSeconds, double defaultMonitorWindow, std::string const &primaryStatKeyName)
Create MonitoredQuantity objects for all names registered with the StatisticsHelper.
StatisticsHelper & operator=(StatisticsHelper const &)=delete
Copy Assignment operator is deleted.
StatisticsHelper()
StatisticsHelper default constructor.
void resetStatistics()
Reset all MonitoredQuantity instances.