T3.h
Go to the documentation of this file.
1 #ifndef _sevt_T3_h_
2 #define _sevt_T3_h_
3 
4 #include <utl/TimeStamp.h>
5 #include <utl/IteratorRange.h>
6 #include <boost/iterator/transform_iterator.hpp>
7 #include <vector>
8 #include <string>
9 #include <map>
10 
11 
12 namespace sevt {
13 
36  class T3 {
37  public:
46  struct T3Station {
47  int fId;
50  };
51 
52  private:
53  typedef std::map<int, sevt::T3::T3Station> InternalStationMap;
54  typedef InternalStationMap::const_iterator ConstInternalStationIterator;
55 
57  const sevt::T3::T3Station& operator()(const InternalStationMap::value_type& pair) const
58  { return pair.second; }
59  };
60 
61  public:
63  void SetTime(const utl::TimeStamp& stamp) { fTime = stamp; }
64 
66  utl::TimeStamp GetTime() const { return fTime; }
67 
69  void SetAlgorithm(const std::string& algo) { fAlgorithm = algo; }
70 
72  std::string GetAlgorithm() const { return fAlgorithm; }
73 
75  int GetNumberOfStations() const { return fParticipants.size(); }
76 
78  void AddStation(const int id, const utl::TimeInterval& offset, const utl::TimeInterval& window);
79 
80  bool HasStation(const int id) const { return fParticipants.find(id) != fParticipants.end(); }
81 
83  utl::TimeInterval GetOffset(const int id) const
84  { return fParticipants.find(id)->second.fOffset; }
85 
87  utl::TimeInterval GetWindow(const int id) const
88  { return fParticipants.find(id)->second.fWindow; }
89 
91  typedef boost::transform_iterator<InternalStationFunctor,
94 
100 
101  explicit operator bool() const { return bool(fTime); }
102 
103  private:
106  std::string fAlgorithm;
107  };
108 
109 }
110 
111 
112 #endif
StationIterator StationsEnd() const
Iterator over the list of T3Stations in T3.
Definition: T3.h:98
utl::TimeInterval fWindow
Definition: T3.h:49
void SetAlgorithm(const std::string &algo)
Set the trigger algorithm.
Definition: T3.h:69
bool HasStation(const int id) const
Definition: T3.h:80
This class contains the basic information to build a surface event.
Definition: T3.h:36
void SetTime(const utl::TimeStamp &stamp)
Set the trigger time stamp.
Definition: T3.h:63
int GetNumberOfStations() const
Get number of T3 stations.
Definition: T3.h:75
std::string fAlgorithm
Definition: T3.h:106
utl::TimeStamp fTime
Definition: T3.h:105
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
utl::TimeInterval fOffset
Definition: T3.h:48
utl::TimeStamp GetTime() const
Get the trigger time stamp.
Definition: T3.h:66
InternalStationMap fParticipants
Definition: T3.h:104
#define OFFLINE_MAKE_CONST_ITERATOR_RANGE(_ConstIterator_, _NamePrefix_)
Definition: IteratorRange.h:28
const sevt::T3::T3Station & operator()(const InternalStationMap::value_type &pair) const
Definition: T3.h:57
StationIterator StationsBegin() const
Iterator over the list of T3Stations in T3.
Definition: T3.h:96
InternalStationMap::const_iterator ConstInternalStationIterator
Definition: T3.h:54
Class to hold the trigger information for one station in a T3 (based on the t3stat class)...
Definition: T3.h:46
std::map< int, sevt::T3::T3Station > InternalStationMap
Definition: T3.h:53
A TimeInterval is used to represent time elapsed between two events.
Definition: TimeInterval.h:43
utl::TimeInterval GetOffset(const int id) const
Get time offset for a specific station.
Definition: T3.h:83
boost::transform_iterator< InternalStationFunctor, ConstInternalStationIterator, const sevt::T3::T3Station & > StationIterator
StationIterator returns a pointer to a T3Station.
Definition: T3.h:93
utl::TimeInterval GetWindow(const int id) const
Get time window for a specific station.
Definition: T3.h:87
void AddStation(const int id, const utl::TimeInterval &offset, const utl::TimeInterval &window)
Add a station to request data, specifying offset and window size.
Definition: T3.cc:13
std::string GetAlgorithm() const
Get the trigger algorithm.
Definition: T3.h:72

, generated on Tue Sep 26 2023.