Belle II Software  release-05-02-19
Board.h
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : TRGBoard.h
5 // Section : TRG
6 // Owner : Yoshihito Iwasaki
7 // Email : yoshihito.iwasaki@kek.jp
8 //-----------------------------------------------------------------------------
9 // Description : A class to represent a trigger board
10 //-----------------------------------------------------------------------------
11 // $Log$
12 //-----------------------------------------------------------------------------
13 
14 #ifndef TRGBoard_FLAG_
15 #define TRGBoard_FLAG_
16 
17 #include <string>
18 #include <vector>
19 
20 namespace Belle2 {
26  class TRGClock;
27  class TRGChannel;
28 
30  class TRGBoard {
31 
32  public:
33 
35  TRGBoard(const std::string& name,
36  const TRGClock& systemClock,
37  const TRGClock& dataClock,
38  const TRGClock& userClockInput,
39  const TRGClock& userClockOutput);
40 
42  virtual ~TRGBoard();
43 
44  public:// Selectors.
45 
47  const std::string& name(void) const;
48 
50  const TRGClock& clockSystem(void) const;
51 
53  const TRGClock& clockData(void) const;
54 
56  const TRGClock& clockUserInput(void) const;
57 
59  const TRGClock& clockUserOutput(void) const;
60 
62  unsigned nInput(void) const;
63 
65  const TRGChannel* input(unsigned i) const;
66 
68  unsigned nOutput(void) const;
69 
71  TRGChannel* output(unsigned i) const;
72 
75  void dump(const std::string& message = "",
76  const std::string& pre = "") const;
77 
78  public:// Modifiers
79 
81  void appendInput(const TRGChannel*);
82 
84  void appendOutput(TRGChannel*);
85 
86  private:
87 
89  const std::string _name;
90 
93 
96 
99 
102 
104  std::vector<const TRGChannel*> _inputChannels;
105 
107  std::vector<TRGChannel*> _outputChannels;
108  };
109 
110 //-----------------------------------------------------------------------------
111 
112  inline
113  const std::string&
114  TRGBoard::name(void) const
115  {
116  return _name;
117  }
118 
119  inline
120  const TRGClock&
122  {
123  return * _clockSystem;
124  }
125 
126  inline
127  const TRGClock&
129  {
130  return * _clockData;
131  }
132 
133  inline
134  const TRGClock&
136  {
137  return * _clockUserInput;
138  }
139 
140  inline
141  const TRGClock&
143  {
144  return * _clockUserOutput;
145  }
146 
147  inline
148  void
150  {
151  _inputChannels.push_back(a);
152  }
153 
154  inline
155  void
157  {
158  _outputChannels.push_back(a);
159  }
160 
161  inline
162  const TRGChannel*
163  TRGBoard::input(unsigned a) const
164  {
165  return _inputChannels[a];
166  }
167 
168  inline
169  TRGChannel*
170  TRGBoard::output(unsigned a) const
171  {
172  return _outputChannels[a];
173  }
174 
175  inline
176  unsigned
177  TRGBoard::nInput(void) const
178  {
179  return _inputChannels.size();
180  }
181 
182 
183  inline
184  unsigned
185  TRGBoard::nOutput(void) const
186  {
187  return _outputChannels.size();
188  }
189 
190 
192 } // namespace Belle2
193 
194 #endif /* TRGBoard_FLAG_ */
Belle2::TRGBoard::clockSystem
const TRGClock & clockSystem(void) const
returns system clock.
Definition: Board.h:121
Belle2::TRGBoard
A class to represent a trigger board.
Definition: Board.h:30
Belle2::TRGBoard::clockData
const TRGClock & clockData(void) const
returns data clock.
Definition: Board.h:128
Belle2::TRGChannel
A class to represent a serial link between trigger hardware modules.
Definition: Channel.h:30
Belle2::TRGBoard::_name
const std::string _name
Name of a board.
Definition: Board.h:89
Belle2::TRGBoard::_outputChannels
std::vector< TRGChannel * > _outputChannels
Output Aurora channel.
Definition: Board.h:107
Belle2::TRGBoard::_clockUserOutput
const TRGClock * _clockUserOutput
User clock.
Definition: Board.h:101
Belle2::TRGBoard::clockUserOutput
const TRGClock & clockUserOutput(void) const
returns Aurora user clock for output.
Definition: Board.h:142
Belle2::TRGBoard::_clockData
const TRGClock * _clockData
Data clock.
Definition: Board.h:95
Belle2::TRGBoard::name
const std::string & name(void) const
returns name.
Definition: Board.h:114
Belle2::TRGBoard::appendInput
void appendInput(const TRGChannel *)
appends an input Aurora channel.
Definition: Board.h:149
Belle2::TRGBoard::dump
void dump(const std::string &message="", const std::string &pre="") const
dumps contents.
Definition: Board.cc:47
Belle2::TRGBoard::output
TRGChannel * output(unsigned i) const
returns output channel i.
Definition: Board.h:170
Belle2::TRGBoard::nOutput
unsigned nOutput(void) const
returns output channels.
Definition: Board.h:185
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TRGBoard::clockUserInput
const TRGClock & clockUserInput(void) const
returns Aurora user clock for input.
Definition: Board.h:135
Belle2::TRGBoard::appendOutput
void appendOutput(TRGChannel *)
appends an output Aurora channel.
Definition: Board.h:156
Belle2::TRGBoard::TRGBoard
TRGBoard(const std::string &name, const TRGClock &systemClock, const TRGClock &dataClock, const TRGClock &userClockInput, const TRGClock &userClockOutput)
Constructor.
Definition: Board.cc:27
Belle2::TRGBoard::~TRGBoard
virtual ~TRGBoard()
Destructor.
Definition: Board.cc:42
Belle2::TRGBoard::_inputChannels
std::vector< const TRGChannel * > _inputChannels
Input Aurora channel.
Definition: Board.h:104
Belle2::TRGBoard::nInput
unsigned nInput(void) const
returns input channels.
Definition: Board.h:177
Belle2::TRGBoard::_clockUserInput
const TRGClock * _clockUserInput
User clock.
Definition: Board.h:98
Belle2::TRGBoard::_clockSystem
const TRGClock * _clockSystem
System clock.
Definition: Board.h:92
Belle2::TRGClock
A class to represent a digitized signal. Unit is nano second.
Definition: Clock.h:43
Belle2::TRGBoard::input
const TRGChannel * input(unsigned i) const
returns input channel i.
Definition: Board.h:163