Jpp
JDAQEventHeader.hh
Go to the documentation of this file.
1 #ifndef __JDAQEVENTHEADER__
2 #define __JDAQEVENTHEADER__
3 
4 #include "JIO/JSerialisable.hh"
5 #include "JDAQ/JDAQRoot.hh"
6 #include "JDAQ/JDAQHeader.hh"
9 
10 
11 /**
12  * \author mdejong
13  */
14 
15 namespace KM3NETDAQ {
16 
17  using JIO::JReader;
18  using JIO::JWriter;
19 
20 
21  /**
22  * JDAQ event header.
23  */
25  public JDAQHeader,
26  public JDAQTriggerCounter,
27  public JDAQTriggerMask
28  {
29  public:
30  /**
31  * Default constructor.
32  */
34  JDAQHeader(),
37  overlays(0)
38  {}
39 
40 
41  /**
42  * Constructor.
43  *
44  * \param chronometer DAQ chronometer
45  * \param mask trigger mask
46  */
47  JDAQEventHeader(const JDAQChronometer& chronometer,
48  const JDAQTriggerMask& mask = JDAQTriggerMask()) :
49  JDAQHeader(chronometer),
51  JDAQTriggerMask(mask),
52  overlays(0)
53  {}
54 
55 
56  /**
57  * Get DAQ event header.
58  *
59  * \return DAQ event header
60  */
62  {
63  return static_cast<const JDAQEventHeader&>(*this);
64  }
65 
66 
67  /**
68  * Check if header is same.
69  *
70  * \param header DAQ event header
71  * \return true if event headers are same; else false
72  */
73  inline bool is_same(const JDAQEventHeader& header) const
74  {
75  return (this->getDetectorID() == header.getDetectorID() &&
76  this->getRunNumber() == header.getRunNumber() &&
77  this->getFrameIndex() == header.getFrameIndex() &&
78  this->getCounter() == header.getCounter());
79  }
80 
81 
82  /**
83  * Get number of overlays.
84  *
85  * \return number of overlays
86  */
87  unsigned int getOverlays() const
88  {
89  return overlays;
90  }
91 
92 
93  /**
94  * Read DAQ event header from input.
95  *
96  * \param in JReader
97  * \param header JDAQEventHeader
98  * \return JReader
99  */
100  friend inline JReader& operator>>(JReader& in, JDAQEventHeader& header)
101  {
102  in >> static_cast<JDAQHeader&> (header);
103  in >> static_cast<JDAQTriggerCounter&>(header);
104  in >> static_cast<JDAQTriggerMask&> (header);
105  in >> header.overlays;
106 
107  return in;
108  }
109 
110 
111  /**
112  * Write DAQ event header to output.
113  *
114  * \param out JWriter
115  * \param header JDAQEventHeader
116  * \return JWriter
117  */
118  friend inline JWriter& operator<<(JWriter& out, const JDAQEventHeader& header)
119  {
120  out << static_cast<const JDAQHeader&> (header);
121  out << static_cast<const JDAQTriggerCounter&>(header);
122  out << static_cast<const JDAQTriggerMask&> (header);
123  out << header.overlays;
124 
125  return out;
126  }
127 
128 
129  /**
130  * Get size of object.
131  *
132  * \return number of bytes
133  */
134  static int sizeOf()
135  {
136  return (JDAQHeader ::sizeOf() +
139  sizeof(unsigned int));
140  }
141 
142 
144 
145 
146  protected:
147  unsigned int overlays;
148  };
149 
150 
151  /**
152  * Equal operator for DAQ event headers.
153  *
154  * \param first event header
155  * \param second event header
156  * \result true if first event header equal to second; else false
157  */
158  inline bool operator==(const JDAQEventHeader& first,
159  const JDAQEventHeader& second)
160  {
161  return (first.getDAQHeader() == second.getDAQHeader() &&
162  first.getDAQTriggerCounter() == second.getDAQTriggerCounter() &&
163  first.getDAQTriggerMask() == second.getDAQTriggerMask());
164  }
165 
166 
167  /**
168  * Not-equal operator for DAQ event headers.
169  *
170  * \param first event header
171  * \param second event header
172  * \result true if first event header not equal to second; else false
173  */
174  inline bool operator!=(const JDAQEventHeader& first,
175  const JDAQEventHeader& second)
176  {
177  return !(first == second);
178  }
179 }
180 
181 #endif
KM3NETDAQ::JDAQHeader::getDAQHeader
const JDAQHeader & getDAQHeader() const
Get DAQ header.
Definition: JDAQHeader.hh:51
JIO::JReader
Interface for binary input.
Definition: JSerialisable.hh:62
KM3NETDAQ::JDAQEventHeader::JDAQEventHeader
JDAQEventHeader()
Default constructor.
Definition: JDAQEventHeader.hh:33
KM3NETDAQ::JDAQTriggerCounter::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQTriggerCounter.hh:161
KM3NETDAQ::JDAQEventHeader::is_same
bool is_same(const JDAQEventHeader &header) const
Check if header is same.
Definition: JDAQEventHeader.hh:73
KM3NETDAQ::JDAQEventHeader::ClassDef
ClassDef(JDAQEventHeader, 3)
KM3NETDAQ::JDAQTriggerCounter::getCounter
JTriggerCounter_t getCounter() const
Get trigger counter.
Definition: JDAQTriggerCounter.hh:98
KM3NETDAQ::JDAQHeader
DAQ header.
Definition: JDAQHeader.hh:24
KM3NETDAQ::JDAQChronometer::getFrameIndex
int getFrameIndex() const
Get frame index.
Definition: JDAQChronometer.hh:132
KM3NETDAQ::JDAQTriggerCounter::getDAQTriggerCounter
const JDAQTriggerCounter & getDAQTriggerCounter() const
Get DAQ trigger counter.
Definition: JDAQTriggerCounter.hh:78
KM3NETDAQ::JDAQEventHeader::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQEventHeader.hh:134
KM3NETDAQ::JDAQChronometer::getDetectorID
int getDetectorID() const
Get detector identifier.
Definition: JDAQChronometer.hh:110
JDAQTriggerCounter.hh
JSerialisable.hh
KM3NETDAQ::JDAQTriggerCounter
Auxiliary class to count triggers.
Definition: JDAQTriggerCounter.hh:27
KM3NETDAQ::operator!=
bool operator!=(const JDAQChronometer &first, const JDAQChronometer &second)
Not-equal operator for DAQ chronometers.
Definition: JDAQChronometer.hh:303
KM3NETDAQ::JDAQEventHeader::getDAQEventHeader
const JDAQEventHeader & getDAQEventHeader() const
Get DAQ event header.
Definition: JDAQEventHeader.hh:61
KM3NETDAQ::JDAQEventHeader::getOverlays
unsigned int getOverlays() const
Get number of overlays.
Definition: JDAQEventHeader.hh:87
JIO::JWriter
Interface for binary output.
Definition: JSerialisable.hh:130
KM3NETDAQ::JDAQEventHeader::operator>>
friend JReader & operator>>(JReader &in, JDAQEventHeader &header)
Read DAQ event header from input.
Definition: JDAQEventHeader.hh:100
KM3NETDAQ::JDAQTriggerMask::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQTriggerMask.hh:297
JDAQHeader.hh
KM3NETDAQ::JDAQTriggerMask::JDAQTriggerMask
JDAQTriggerMask()
Default constructor.
Definition: JDAQTriggerMask.hh:57
JDAQRoot.hh
KM3NETDAQ::JDAQEventHeader::JDAQEventHeader
JDAQEventHeader(const JDAQChronometer &chronometer, const JDAQTriggerMask &mask=JDAQTriggerMask())
Constructor.
Definition: JDAQEventHeader.hh:47
JDAQTriggerMask.hh
KM3NETDAQ::operator==
bool operator==(const JDAQChronometer &first, const JDAQChronometer &second)
Equal operator for DAQ chronometers.
Definition: JDAQChronometer.hh:286
KM3NETDAQ::JDAQTriggerMask
Auxiliary class for trigger mask.
Definition: JDAQTriggerMask.hh:52
KM3NETDAQ::JDAQHeader::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQHeader.hh:103
KM3NETDAQ::JDAQChronometer::getRunNumber
int getRunNumber() const
Get run number.
Definition: JDAQChronometer.hh:121
KM3NETDAQ::JDAQEventHeader::overlays
unsigned int overlays
Definition: JDAQEventHeader.hh:147
KM3NETDAQ::JDAQEventHeader::operator<<
friend JWriter & operator<<(JWriter &out, const JDAQEventHeader &header)
Write DAQ event header to output.
Definition: JDAQEventHeader.hh:118
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition: DataQueue.cc:39
KM3NETDAQ::JDAQEventHeader
JDAQ event header.
Definition: JDAQEventHeader.hh:24
KM3NETDAQ::JDAQChronometer
DAQ chronometer.
Definition: JDAQChronometer.hh:26
KM3NETDAQ::JDAQTriggerMask::getDAQTriggerMask
const JDAQTriggerMask & getDAQTriggerMask() const
Get DAQ trigger mask.
Definition: JDAQTriggerMask.hh:94