TriggerTimeCorrection.h
Go to the documentation of this file.
1 #ifndef _TriggerTimeCorrection_TriggerTimeCorrection_h_
2 #define _TriggerTimeCorrection_TriggerTimeCorrection_h_
3 
4 #include <fwk/VModule.h>
5 #include <utl/TimeInterval.h>
6 #include <utl/TimeStamp.h>
7 #include <map>
8 #include <vector>
9 #include <string>
10 
11 
12 namespace evt {
13  class Event;
14 }
15 
16 namespace TriggerTimeCorrection {
17 
32 
33  public:
34  virtual ~TriggerTimeCorrection() = default;
35 
36  fwk::VModule::ResultFlag Init() override;
37  fwk::VModule::ResultFlag Run(evt::Event& event) override;
38  fwk::VModule::ResultFlag Finish() override { return eSuccess; }
39 
40  private:
41  struct TriggerSoftware {
42  TriggerSoftware(const std::string& ver, const utl::TimeStamp& time)
43  : fVersion(ver), fInstallationTime(time) { }
45  bool operator<(const TriggerSoftware& t) const
46  { return fInstallationTime < t.fInstallationTime; }
47 
48  std::string fVersion;
50  };
51 
52  const TriggerSoftware& GetTriggerSoftware(const unsigned int stId,
53  const utl::TimeStamp& time) const;
54 
55  utl::TimeInterval GetTimeOffset(const std::string& triggerName) const;
56 
58 
59  typedef std::map<unsigned int, std::vector<TriggerSoftware>> TriggerMap;
61 
62  REGISTER_MODULE("TriggerTimeCorrection", TriggerTimeCorrection);
63 
64  };
65 
66 }
67 
68 
69 #endif
fwk::VModule::ResultFlag Init() override
Initialize: invoked at beginning of run (NOT beginning of event)
const TriggerSoftware & GetTriggerSoftware(const unsigned int stId, const utl::TimeStamp &time) const
Report success to RunController.
Definition: VModule.h:62
TriggerSoftware(const std::string &ver, const utl::TimeStamp &time)
utl::TimeInterval GetTimeOffset(const std::string &triggerName) const
std::map< unsigned int, std::vector< TriggerSoftware > > TriggerMap
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
fwk::VModule::ResultFlag Run(evt::Event &event) override
Run: invoked once per event.
REGISTER_MODULE("TriggerTimeCorrection", TriggerTimeCorrection)
Module interface.
Definition: VModule.h:53
fwk::VModule::ResultFlag Finish() override
Finish: invoked at end of the run (NOT end of the event)
A TimeInterval is used to represent time elapsed between two events.
Definition: TimeInterval.h:43
ResultFlag
Flag returned by module methods to the RunController.
Definition: VModule.h:60

, generated on Tue Sep 26 2023.