Belle II Software  release-05-02-19
SignalBundle.h
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : TRGSignalBundle.h
5 // Section : TRG
6 // Owner : Yoshihito Iwasaki
7 // Email : yoshihito.iwasaki@kek.jp
8 //-----------------------------------------------------------------------------
9 // Description : A class to represent a bundle of SignalVectors.
10 //-----------------------------------------------------------------------------
11 // $Log$
12 //-----------------------------------------------------------------------------
13 
14 #ifndef TRGSignalBundle_FLAG_
15 #define TRGSignalBundle_FLAG_
16 
17 #include <vector>
18 #include "trg/trg/Clock.h"
19 
20 namespace Belle2 {
26  class TRGSignal;
27  class TRGSignalVector;
28  class TRGState;
29 
31  class TRGSignalBundle : public std::vector<TRGSignalVector*> {
32 
33  public:
34 
36 // TRGSignalBundle(const TRGClock & = Belle2_GDL::GDLSystemClock);
37  TRGSignalBundle(const TRGClock&);
38 
40  TRGSignalBundle(const std::string& name,
41 // const TRGClock & = Belle2_GDL::GDLSystemClock);
42  const TRGClock&);
43 
45  TRGSignalBundle(const std::string& name,
46  const TRGClock& clock,
47  const TRGSignalBundle& input,
48  const unsigned outputBitSize,
49  TRGState(* packer)(const TRGState&));
50 
52  TRGSignalBundle(const std::string& name,
53  const TRGClock& clock,
54  const TRGSignalBundle& input,
55  const unsigned outputBitSize,
56  const unsigned registerBitSize,
57  TRGState(* packer)(const TRGState& in,
58  TRGState& registers,
59  bool& logicStillActive));
60 
62  virtual ~TRGSignalBundle();
63 
64  public:// Selectors
65 
67  const std::string& name(void) const;
68 
70  const std::string& name(const std::string& newName);
71 
73  const TRGClock& clock(void) const;
74 
76  bool active(void) const;
77 
79  std::vector<int> stateChanges(void) const;
80 
82  TRGState state(int clockPosition) const;
83 
85  TRGSignal ored(void) const;
86 
89  void dump(const std::string& message = "",
90  const std::string& pre = "") const;
91 
93  void dumpCOE(const std::string& fileName = "",
94  int start = 0,
95  int stop = 0) const;
96 
97  public:// Operators
98 
100  const TRGClock& clock(const TRGClock&);
101 
103  void readCOE(const std::string& fileName = "");
104 
105  private:
106 
108  std::string _name;
109 
111  const TRGClock* _clock;
112  };
113 
114 //-----------------------------------------------------------------------------
115 
116  inline
117  const std::string&
119  {
120  return _name;
121  }
122 
123  inline
124  const std::string&
125  TRGSignalBundle::name(const std::string& newName)
126  {
127  return _name = newName;
128  }
129 
130  inline
131  const TRGClock&
133  {
134  return * _clock;
135  }
136 
138 } // namespace Belle2
139 
140 #endif /* TRGSignalBundle_FLAG_ */
Belle2::TRGSignalBundle::dumpCOE
void dumpCOE(const std::string &fileName="", int start=0, int stop=0) const
makes coe output.
Definition: SignalBundle.cc:305
Belle2::TRGSignal
A class to represent a digitized signal. Unit is nano second.
Definition: Signal.h:28
Belle2::TRGSignalBundle::stateChanges
std::vector< int > stateChanges(void) const
returns a list of clock position of state change.
Definition: SignalBundle.cc:216
Belle2::TRGState
A class to represent a state of multi bits.
Definition: State.h:29
Belle2::TRGSignalBundle
A class to represent a bundle of SignalVectors.
Definition: SignalBundle.h:31
Belle2::TRGSignalBundle::name
const std::string & name(void) const
returns name.
Definition: SignalBundle.h:118
Belle2::TRGSignalBundle::active
bool active(void) const
returns true if there is a signal.
Definition: SignalBundle.cc:207
Belle2::TRGSignalBundle::dump
void dump(const std::string &message="", const std::string &pre="") const
dumps contents.
Definition: SignalBundle.cc:198
Belle2::TRGSignalBundle::clock
const TRGClock & clock(void) const
returns clock.
Definition: SignalBundle.h:132
Belle2::TRGSignalBundle::readCOE
void readCOE(const std::string &fileName="")
reads data from a file.
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TRGSignalBundle::~TRGSignalBundle
virtual ~TRGSignalBundle()
Destructor.
Definition: SignalBundle.cc:193
Belle2::TRGSignalBundle::_name
std::string _name
Name.
Definition: SignalBundle.h:108
Belle2::TRGSignalBundle::ored
TRGSignal ored(void) const
returns signal of all ORed.
Definition: SignalBundle.cc:276
Belle2::TRGSignalBundle::TRGSignalBundle
TRGSignalBundle(const TRGClock &)
Default constructor.
Definition: SignalBundle.cc:37
Belle2::TRGSignalBundle::state
TRGState state(int clockPosition) const
returns state at given clock position.
Definition: SignalBundle.cc:251
Belle2::TRGClock
A class to represent a digitized signal. Unit is nano second.
Definition: Clock.h:43
Belle2::TRGSignalBundle::_clock
const TRGClock * _clock
Clock.
Definition: SignalBundle.h:111