Belle II Software  release-05-02-19
SignalVector.h
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : TRGSignalVector.h
5 // Section : TRG
6 // Owner : Yoshihito Iwasaki
7 // Email : yoshihito.iwasaki@kek.jp
8 //-----------------------------------------------------------------------------
9 // Description : A class to represent a bundle of digitized signals.
10 //-----------------------------------------------------------------------------
11 // $Log$
12 //-----------------------------------------------------------------------------
13 
14 #ifndef TRGSignalVector_FLAG_
15 #define TRGSignalVector_FLAG_
16 
17 #include <vector>
18 
19 namespace Belle2 {
25  class TRGSignal;
26  class TRGState;
27  class TRGClock;
28 
31  class TRGSignalVector : public std::vector<TRGSignal> {
32 
33  public:
34 
36 // TRGSignalVector(const TRGClock & = Belle2_GDL::GDLSystemClock);
37 
39  TRGSignalVector(const std::string& name,
40 // const TRGClock & = Belle2_GDL::GDLSystemClock,
41  const TRGClock&,
42  unsigned size = 0);
43 
46 
48  TRGSignalVector(const TRGSignal&);
49 
51  virtual ~TRGSignalVector();
52 
53  public:// Selectors
54 
56  const std::string& name(void) const;
57 
59  const std::string& name(const std::string& newName);
60 
62  const TRGClock& clock(void) const;
63 
65  bool active(void) const;
66 
68  bool active(int clockPosition) const;
69 
71  std::vector<int> stateChanges(void) const;
72 
74  TRGState state(int clockPosition) const;
75 
78  void dump(const std::string& message = "",
79  const std::string& pre = "") const;
80 
81  public:// Modifiers
82 
84  const TRGSignalVector& set(const TRGState&, int clockPosition);
85 
86  public:// Operators
87 
89  const TRGClock& clock(const TRGClock&);
90 
93 
96 
98  bool operator==(const TRGSignalVector&) const;
99 
101  bool operator!=(const TRGSignalVector&) const;
102 
103  private:
104 
106  std::string _name;
107 
109  const TRGClock* _clock;
110  };
111 
112 //-----------------------------------------------------------------------------
113 
114  inline
115  const std::string&
117  {
118  return _name;
119  }
120 
121  inline
122  const std::string&
123  TRGSignalVector::name(const std::string& newName)
124  {
125  return _name = newName;
126  }
127 
128  inline
129  const TRGClock&
131  {
132  return * _clock;
133  }
134 
135  inline
136  bool
138  {
139  return (! operator==(a));
140  }
141 
143 } // namespace Belle2
144 
145 #endif /* TRGSignalVector_FLAG_ */
Belle2::TRGSignalVector::~TRGSignalVector
virtual ~TRGSignalVector()
Destructor.
Definition: SignalVector.cc:64
Belle2::TRGSignal
A class to represent a digitized signal. Unit is nano second.
Definition: Signal.h:28
Belle2::TRGSignalVector::stateChanges
std::vector< int > stateChanges(void) const
returns a list of clock position of state change.
Definition: SignalVector.cc:135
Belle2::TRGState
A class to represent a state of multi bits.
Definition: State.h:29
Belle2::TRGSignalVector::_name
std::string _name
Name.
Definition: SignalVector.h:106
Belle2::TRGSignalVector::name
const std::string & name(void) const
returns name.
Definition: SignalVector.h:116
Belle2::TRGSignalVector::operator!=
bool operator!=(const TRGSignalVector &) const
compare two TRGSignalVectors.
Definition: SignalVector.h:137
Belle2::TRGSignalVector::active
bool active(void) const
returns true if there is a signal.
Definition: SignalVector.cc:116
Belle2::TRGSignalVector::dump
void dump(const std::string &message="", const std::string &pre="") const
dumps contents.
Definition: SignalVector.cc:69
Belle2::TRGSignalVector::clock
const TRGClock & clock(void) const
returns clock.
Definition: SignalVector.h:130
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TRGSignalVector::operator+=
TRGSignalVector & operator+=(const TRGSignal &)
appends TRGSignal.
Definition: SignalVector.cc:101
Belle2::TRGSignalVector::operator==
bool operator==(const TRGSignalVector &) const
compare two TRGSignalVectors.
Definition: SignalVector.cc:197
Belle2::TRGSignalVector::TRGSignalVector
TRGSignalVector(const std::string &name, const TRGClock &, unsigned size=0)
Default constructor.
Definition: SignalVector.cc:34
Belle2::TRGSignalVector::_clock
const TRGClock * _clock
Clock.
Definition: SignalVector.h:109
Belle2::TRGSignalVector::state
TRGState state(int clockPosition) const
returns state at given clock position.
Definition: SignalVector.cc:163
Belle2::TRGClock
A class to represent a digitized signal. Unit is nano second.
Definition: Clock.h:43
Belle2::TRGSignalVector
A class to represent a bundle of digitized signals.
Definition: SignalVector.h:31
Belle2::TRGSignalVector::set
const TRGSignalVector & set(const TRGState &, int clockPosition)
sets state at given clock.
Definition: SignalVector.cc:186