artdaq  v3_09_00
StatisticsHelper.hh
1 #ifndef artdaq_Application_MPI2_StatisticsHelper_hh
2 #define artdaq_Application_MPI2_StatisticsHelper_hh
3 
4 #include <vector>
5 #include "artdaq-core/Core/StatisticsCollection.hh"
6 #include "fhiclcpp/ParameterSet.h"
7 
8 namespace artdaq {
9 class StatisticsHelper;
10 }
11 
16 {
17 public:
22 
26  StatisticsHelper(StatisticsHelper const&) = delete;
27 
31  virtual ~StatisticsHelper() = default;
32 
40 
45  void addMonitoredQuantityName(std::string const& statKey);
46 
52  void addSample(std::string const& statKey, double value) const;
53 
69  bool createCollectors(fhicl::ParameterSet const& pset,
70  int defaultReportIntervalFragments,
71  double defaultReportIntervalSeconds,
72  double defaultMonitorWindow,
73  std::string const& primaryStatKeyName);
74 
78  void resetStatistics();
79 
84  bool readyToReport();
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_{0};
99  MonitoredQuantityStats::TIME_POINT_T previous_stats_calc_time_{0.0};
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 ...
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.
bool readyToReport()
Determine if the reporting interval condition has been met.