artdaq  v3_08_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 
38 
43  void addMonitoredQuantityName(std::string const& statKey);
44 
50  void addSample(std::string const& statKey, double value) const;
51 
67  bool createCollectors(fhicl::ParameterSet const& pset,
68  int defaultReportIntervalFragments,
69  double defaultReportIntervalSeconds,
70  double defaultMonitorWindow,
71  std::string const& primaryStatKeyName);
72 
76  void resetStatistics();
77 
82  bool readyToReport();
83 
89 
90 private:
91  std::vector<std::string> monitored_quantity_name_list_;
92  artdaq::MonitoredQuantityPtr primary_stat_ptr_;
93 
94  int reporting_interval_fragments_;
95  double reporting_interval_seconds_;
96  size_t previous_reporting_index_;
97  MonitoredQuantityStats::TIME_POINT_T previous_stats_calc_time_;
98 };
99 
100 #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.