Belle II Software  release-05-02-19
OpticalLink.h
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : TRGOpticalLink.h
5 // Section : TRG
6 // Owner : Yoshihito Iwasaki
7 // Email : yoshihito.iwasaki@kek.jp
8 //-----------------------------------------------------------------------------
9 // Description : A class to represent a serial link between trigger modules
10 //-----------------------------------------------------------------------------
11 // $Log$
12 //-----------------------------------------------------------------------------
13 
14 #ifndef TRGOpticalLink_FLAG_
15 #define TRGOpticalLink_FLAG_
16 
17 #include <string>
18 #include <vector>
19 
20 namespace Belle2 {
26  class TRGSignal;
27  class TRGClock;
28 
31 
32  public:
34  TRGOpticalLink(const std::string& name, const TRGClock&);
35 
37  virtual ~TRGOpticalLink();
38 
39  public:// Selectors.
40 
42  const std::string& name(void) const;
43 
45  const TRGClock& clock(void) const;
46 
49  void dump(const std::string& message = "",
50  const std::string& pre = "") const;
51 
52  public:// Modifiers.
53 
55  void appendHeader(const TRGSignal*);
56 
58  void appendTrailer(const TRGSignal*);
59 
61  void append(const TRGSignal*);
62 
63  private:
64 
66  const std::string _name;
67 
69  const TRGClock* _clock;
70 
72  std::vector<const TRGSignal*> _head;
73 
75  std::vector<const TRGSignal*> _trail;
76 
78  std::vector<const TRGSignal*> _data;
79  };
80 
81 //-----------------------------------------------------------------------------
82 
83  inline
84  const std::string&
86  {
87  return _name;
88  }
89 
90  inline
91  const TRGClock&
93  {
94  return * _clock;
95  }
96 
97  inline
98  void
100  {
101  _head.push_back(a);
102  }
103 
104  inline
105  void
107  {
108  _trail.push_back(a);
109  }
110 
111  inline
112  void
114  {
115  _data.push_back(a);
116  }
117 
119 } // namespace Belle2
120 
121 #endif /* TRGOpticalLink_FLAG_ */
Belle2::TRGSignal
A class to represent a digitized signal. Unit is nano second.
Definition: Signal.h:28
Belle2::TRGOpticalLink::~TRGOpticalLink
virtual ~TRGOpticalLink()
Destructor.
Definition: OpticalLink.cc:33
Belle2::TRGOpticalLink::TRGOpticalLink
TRGOpticalLink(const std::string &name, const TRGClock &)
Constructor.
Definition: OpticalLink.cc:26
Belle2::TRGOpticalLink::name
const std::string & name(void) const
returns name.
Definition: OpticalLink.h:85
Belle2::TRGOpticalLink::clock
const TRGClock & clock(void) const
returns clock.
Definition: OpticalLink.h:92
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TRGOpticalLink::appendHeader
void appendHeader(const TRGSignal *)
appends a signal to header data.
Definition: OpticalLink.h:99
Belle2::TRGOpticalLink::append
void append(const TRGSignal *)
appends a signal to data.
Definition: OpticalLink.h:113
Belle2::TRGOpticalLink::appendTrailer
void appendTrailer(const TRGSignal *)
appends a signal to trailer data.
Definition: OpticalLink.h:106
Belle2::TRGClock
A class to represent a digitized signal. Unit is nano second.
Definition: Clock.h:43