Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JDAQSuperFrame.hh
Go to the documentation of this file.
1#ifndef __JDAQSUPERFRAME__
2#define __JDAQSUPERFRAME__
3
11
12
13/**
14 * \author mdejong
15 */
16
17namespace KM3NETDAQ {
18
19 /**
20 * Data frame of one optical module.
21 */
23 public JDAQPreamble,
25 public JDAQFrame
26 {
27 public:
28
33
34 friend size_t getSizeof(const JDAQSuperFrame&);
36 friend JWriter& operator<<(JWriter&, const JDAQSuperFrame&);
37
38 /**
39 * Default constructor.
40 */
46
47
48 /**
49 * Constructor.
50 *
51 * \param header JDAQ super frame header
52 */
58
59
60 /**
61 * Copy constructor.
62 *
63 * \param super_frame JDAQ super frame
64 */
65 JDAQSuperFrame(const JDAQSuperFrame& super_frame) :
68 JDAQFrame(super_frame)
69 {}
70
71
72 /**
73 * Add data from same optical module.
74 *
75 * \param super_frame JDAQ super frame
76 * \return this JDAQ super frame
77 */
78 JDAQSuperFrame& add(const JDAQSuperFrame& super_frame)
79 {
80 if (this->getModuleID() != super_frame.getModuleID())
81 throw JDAQException("JDAQSuperFrame::add(): Different module identifiers.");
82
83 return add(static_cast<const JDAQFrame&>(super_frame));
84 }
85
86
87 /**
88 * Add hit.
89 *
90 * \param hit JDAQ hit
91 * \return this JDAQ frame
92 */
94 {
95 return add(1, &hit);
96 }
97
98
99 /**
100 * Add data.
101 *
102 * \param frame JDAQ frame
103 * \return this JDAQ frame
104 */
106 {
107 return add(frame.numberOfHits, frame.buffer);
108 }
109
110
111 /**
112 * Add data.
113 *
114 * \param number_of_hits number of hits
115 * \param data pointer to data
116 * \return this data frame
117 */
118 JDAQSuperFrame& add(const int number_of_hits, const JDAQHit* data)
119 {
120 JDAQFrame::add(number_of_hits, data);
121
122 return *this;
123 }
124
125
127 };
128
129
130 /**
131 * Equal operator for DAQ super frames.
132 *
133 * \param first super frame
134 * \param second super frame
135 * \result true if first super frame equal to second; else false
136 */
137 inline bool operator==(const JDAQSuperFrame& first,
138 const JDAQSuperFrame& second)
139 {
140 if (first.getDAQSuperFrameHeader() == second.getDAQSuperFrameHeader() &&
141 first.size() == second.size()) {
142
143 for (JDAQSuperFrame::const_iterator p = first.begin(), q = second.begin(); p != first.end(); ++p, ++q) {
144 if (*p != *q) {
145 return false;
146 }
147 }
148
149 return true;
150
151 } else {
152
153 return false;
154 }
155 }
156
157
158 /**
159 * Not-equal operator for DAQ super frames.
160 *
161 * \param first super frame
162 * \param second super frame
163 * \result true if first super frame not equal to second; else false
164 */
165 inline bool operator!=(const JDAQSuperFrame& first,
166 const JDAQSuperFrame& second)
167 {
168 return !(first == second);
169 }
170}
171
172#endif
KM3NeT DAQ constants, bit handling, etc.
Interface for binary input.
Interface for binary output.
General exception.
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition JDAQFrame.hh:71
const_iterator end() const
Definition JDAQFrame.hh:166
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition JDAQFrame.hh:219
const JDAQHit * data() const
Definition JDAQFrame.hh:185
std::reverse_iterator< iterator > reverse_iterator
Definition JDAQFrame.hh:72
const_iterator begin() const
Definition JDAQFrame.hh:165
Hit data structure.
Definition JDAQHit.hh:35
int getModuleID() const
Get module identifier.
const JDAQSuperFrameHeader & getDAQSuperFrameHeader() const
Get DAQ super frame header.
Data frame of one optical module.
JDAQSuperFrame & add(const JDAQSuperFrame &super_frame)
Add data from same optical module.
JDAQSuperFrame & add(const JDAQFrame &frame)
Add data.
friend JReader & operator>>(JReader &, JDAQSuperFrame &)
Read JDAQ super frame from input.
friend size_t getSizeof(const JDAQSuperFrame &)
Get size of object.
JDAQSuperFrame & add(const int number_of_hits, const JDAQHit *data)
Add data.
JDAQSuperFrame(const JDAQSuperFrame &super_frame)
Copy constructor.
JDAQFrame::const_iterator const_iterator
friend JWriter & operator<<(JWriter &, const JDAQSuperFrame &)
Write JDAQSuperFrame to output.
JDAQFrame::iterator iterator
JDAQSuperFrame(const JDAQSuperFrameHeader &header)
Constructor.
JDAQSuperFrame()
Default constructor.
JDAQSuperFrame & add(const JDAQHit &hit)
Add hit.
JDAQFrame::reverse_iterator reverse_iterator
ClassDef(JDAQSuperFrame, 3)
JDAQFrame::const_reverse_iterator const_reverse_iterator
bool operator==(const Head &first, const Head &second)
Equal operator.
Definition JHead.hh:1801
bool operator!=(const JTag &first, const JTag &second)
Not equal operator for JTag.
Definition JTag.hh:291
KM3NeT DAQ data structures and auxiliaries.
Definition DataQueue.cc:39
Auxiliary class for a DAQ type holder.