00001 #ifndef EVENT_LOOP_METRICS_SVC_H
00002 #define EVENT_LOOP_METRICS_SVC_H
00003
00006
00007 #include <EventLoop/Algorithm.h>
00008
00009 class TBenchmark;
00010 class TTree;
00011
00012 namespace EL
00013 {
00014 class MetricsSvc : public EL::Algorithm
00015 {
00016
00017
00018
00019
00021 public:
00022 static const std::string name;
00023
00024
00027 public:
00028 void testInvariant () const;
00029
00030
00033 public:
00034 MetricsSvc ();
00035
00038 public:
00039 ~MetricsSvc ();
00040
00041
00042
00043
00044
00045
00046
00049 public:
00050 virtual const char *GetName () const override;
00051
00052
00055 private:
00056 virtual EL::StatusCode fileExecute () override;
00057
00058
00063 private:
00064 virtual EL::StatusCode endOfFile () override;
00065
00066
00071 private:
00072 virtual EL::StatusCode histInitialize () override;
00073
00074
00077 private:
00078 virtual EL::StatusCode execute () override;
00079
00080
00085 private:
00086 virtual EL::StatusCode histFinalize () override;
00087
00088
00089
00090
00091
00092
00093
00095 private:
00096 TTree *m_fileMetrics;
00097
00099 private:
00100 TTree *m_jobMetrics;
00101
00103 private:
00104 Int_t m_filesRead;
00105
00107 private:
00108 Int_t m_eventsRead;
00109
00112 private:
00113 TBenchmark *m_benchmark;
00114
00115 #pragma GCC diagnostic push
00116 #pragma GCC diagnostic ignored "-Wpragmas"
00117 #pragma GCC diagnostic ignored "-Wunknown-pragmas"
00118 #pragma GCC diagnostic ignored "-Winconsistent-missing-override"
00119 ClassDef(MetricsSvc, 1);
00120 #pragma GCC diagnostic pop
00121 };
00122 }
00123
00124
00125 #endif