File indexing completed on 2024-04-06 12:04:21
0001 #ifndef Edm_Module_Timing_h
0002 #define Edm_Module_Timing_h
0003
0004 #include <vector>
0005 #include <string>
0006
0007
0008
0009 namespace edm {
0010
0011
0012 class ModuleTime {
0013 public:
0014 ModuleTime() : name_(""), time_(-1) {}
0015 ModuleTime(std::string Name, double Time) : name_(Name), time_(Time) {}
0016 ~ModuleTime() {}
0017
0018 std::string name() const { return name_; }
0019 double time() const { return time_; }
0020 private:
0021 std::string name_;
0022 double time_;
0023 };
0024
0025
0026 class EventTime {
0027 private:
0028 std::vector<ModuleTime> moduleSet;
0029 double tot_time_;
0030
0031 public:
0032 EventTime() { reset(); }
0033 ~EventTime() {}
0034
0035
0036 unsigned size() const { return moduleSet.size(); }
0037
0038 const ModuleTime& moduleTime(unsigned i) { return moduleSet.at(i); }
0039
0040 double tot_time() const { return tot_time_; }
0041
0042 std::string name(unsigned i) const { return moduleSet.at(i).name(); }
0043
0044 double time(unsigned i) const { return moduleSet.at(i).time(); }
0045
0046 void addModuleTime(const ModuleTime& m) {
0047 moduleSet.push_back(m);
0048 tot_time_ += m.time();
0049 }
0050
0051
0052 void reset() {
0053 moduleSet.clear();
0054 tot_time_ = 0;
0055 }
0056 };
0057
0058 }
0059
0060 #endif