$treeview $search $mathjax $extrastylesheet
artdaq
v3_04_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #ifndef artdaq_Application_MPI2_StatisticsHelper_hh 00002 #define artdaq_Application_MPI2_StatisticsHelper_hh 00003 00004 #include "artdaq-core/Core/StatisticsCollection.hh" 00005 #include "fhiclcpp/ParameterSet.h" 00006 #include <vector> 00007 00008 namespace artdaq 00009 { 00010 class StatisticsHelper; 00011 } 00012 00016 class artdaq::StatisticsHelper 00017 { 00018 public: 00022 StatisticsHelper(); 00023 00027 StatisticsHelper(StatisticsHelper const&) = delete; 00028 00032 virtual ~StatisticsHelper() = default; 00033 00038 StatisticsHelper& operator=(StatisticsHelper const&) = delete; 00039 00044 void addMonitoredQuantityName(std::string const& statKey); 00045 00051 void addSample(std::string const& statKey, double value) const; 00052 00068 bool createCollectors(fhicl::ParameterSet const& pset, 00069 int defaultReportIntervalFragments, 00070 double defaultReportIntervalSeconds, 00071 double defaultMonitorWindow, 00072 std::string const& primaryStatKeyName); 00073 00077 void resetStatistics(); 00078 00084 bool readyToReport(size_t currentCount); 00085 00090 bool statsRollingWindowHasMoved(); 00091 00092 private: 00093 std::vector<std::string> monitored_quantity_name_list_; 00094 artdaq::MonitoredQuantityPtr primary_stat_ptr_; 00095 00096 int reporting_interval_fragments_; 00097 double reporting_interval_seconds_; 00098 size_t previous_reporting_index_; 00099 MonitoredQuantityStats::TIME_POINT_T previous_stats_calc_time_; 00100 }; 00101 00102 #endif /* artdaq_Application_MPI2_StatisticsHelper_hh */