Jpp
software/JDAQ/JDAQEvent.cc
Go to the documentation of this file.
1 
2 #include "JDAQ/JDAQEvent.hh"
3 
4 
5 /**
6  * \author mdejong
7  */
8 
9 namespace KM3NETDAQ {
10 
11 
12  /**
13  * Get triggered hits.
14  *
15  * \return triggered hits
16  */
17  template<>
18  const std::vector<JDAQTriggeredHit>& JDAQEvent::getHits<JDAQTriggeredHit>() const
19  {
20  return triggeredHits;
21  }
22 
23 
24  /**
25  * Get snapshot hits.
26  *
27  * \return snapshot hits
28  */
29  template<>
30  const std::vector<JDAQKeyHit>& JDAQEvent::getHits<JDAQSnapshotHit>() const
31  {
32  return snapshotHits;
33  }
34 
35 
36  /**
37  * Get triggered hits.
38  *
39  * \return triggered hits
40  */
41  template<>
42  std::vector<JDAQTriggeredHit>& JDAQEvent::getHits<JDAQTriggeredHit>()
43  {
44  return triggeredHits;
45  }
46 
47 
48  /**
49  * Get snapshot hits.
50  *
51  * \return snapshot hits
52  */
53  template<>
54  std::vector<JDAQKeyHit>& JDAQEvent::getHits<JDAQSnapshotHit>()
55  {
56  return snapshotHits;
57  }
58 
59 
60  /**
61  * Get begin of triggered hits.
62  *
63  * \return begin triggered hits
64  */
65  template<>
66  JDAQEvent::const_iterator<JDAQTriggeredHit> JDAQEvent::begin<JDAQTriggeredHit>() const
67  {
68  return triggeredHits.begin();
69  }
70 
71 
72  /**
73  * Get end of triggered hits.
74  *
75  * \return end triggered hits
76  */
77  template<>
78  JDAQEvent::const_iterator<JDAQTriggeredHit> JDAQEvent::end<JDAQTriggeredHit>() const
79  {
80  return triggeredHits.end();
81  }
82 
83 
84  /**
85  * Get begin of snapshot hits.
86  *
87  * \return begin snapshot hits
88  */
89  template<>
90  JDAQEvent::const_iterator<JDAQSnapshotHit> JDAQEvent::begin<JDAQKeyHit>() const
91  {
92  return snapshotHits.begin();
93  }
94 
95 
96  /**
97  * Get end of snapshot hits.
98  *
99  * \return end snapshot hits
100  */
101  template<>
102  JDAQEvent::const_iterator<JDAQSnapshotHit> JDAQEvent::end<JDAQKeyHit>() const
103  {
104  return snapshotHits.end();
105  }
106 
107 
108  /**
109  * Get reverse begin of triggered hits.
110  *
111  * \return begin triggered hits
112  */
113  template<>
114  JDAQEvent::const_reverse_iterator<JDAQTriggeredHit> JDAQEvent::rbegin<JDAQTriggeredHit>() const
115  {
116  return triggeredHits.rbegin();
117  }
118 
119 
120  /**
121  * Get reverse end of triggered hits.
122  *
123  * \return end triggered hits
124  */
125  template<>
126  JDAQEvent::const_reverse_iterator<JDAQTriggeredHit> JDAQEvent::rend<JDAQTriggeredHit>() const
127  {
128  return triggeredHits.rend();
129  }
130 
131 
132  /**
133  * Get reverse begin of snapshot hits.
134  *
135  * \return begin snapshot hits
136  */
137  template<>
138  JDAQEvent::const_reverse_iterator<JDAQSnapshotHit> JDAQEvent::rbegin<JDAQKeyHit>() const
139  {
140  return snapshotHits.rbegin();
141  }
142 
143 
144  /**
145  * Get reverse end of snapshot hits.
146  *
147  * \return end snapshot hits
148  */
149  template<>
150  JDAQEvent::const_reverse_iterator<JDAQSnapshotHit> JDAQEvent::rend<JDAQKeyHit>() const
151  {
152  return snapshotHits.rend();
153  }
154 
155 
156  /**
157  * Get number of triggered hits.
158  *
159  * \return number of triggered hits
160  */
161  template<>
162  unsigned int JDAQEvent::size<JDAQTriggeredHit>() const
163  {
164  return triggeredHits.size();
165  }
166 
167 
168  /**
169  * Get number of snapshot hits.
170  *
171  * \return number of snapshot hits
172  */
173  template<>
174  unsigned int JDAQEvent::size<JDAQSnapshotHit>() const
175  {
176  return snapshotHits.size();
177  }
178 
179 
180  /**
181  * Check emptyness of triggered data.
182  *
183  * \return emptyness triggered hits
184  */
185  template<>
186  bool JDAQEvent::empty<JDAQTriggeredHit>() const
187  {
188  return triggeredHits.empty();
189  }
190 
191 
192  /**
193  * Check emptyness of snapshot data.
194  *
195  * \return emptyness snapshot hits
196  */
197  template<>
198  bool JDAQEvent::empty<JDAQSnapshotHit>() const
199  {
200  return snapshotHits.empty();
201  }
202 
203 
204  /**
205  * Equal operator for DAQ events.
206  *
207  * \param first event
208  * \param second event
209  * \result true if first event equal to second; else false
210  */
211  bool operator==(const JDAQEvent& first,
212  const JDAQEvent& second)
213  {
214  return (first.getDAQEventHeader() == second.getDAQEventHeader() &&
215  first.getHits<JDAQTriggeredHit>() == second.getHits<JDAQTriggeredHit>() &&
216  first.getHits<JDAQSnapshotHit> () == second.getHits<JDAQSnapshotHit> ());
217  }
218 
219 
220  /**
221  * Print DAQ Event.
222  *
223  * \param out output stream
224  * \param lpr long print
225  * \return output stream
226  */
227  std::ostream& JDAQEvent::print(std::ostream& out, const bool lpr) const
228  {
229  using namespace std;
230 
231  out << this->ClassName() << endl;
232  out << dynamic_cast<const JDAQPreamble&> (*this) << endl;
233  out << dynamic_cast<const JDAQChronometer&>(*this) << endl;
234 
235  out << "Trigger counter " << this->getCounter() << endl;
236  out << "Trigger mask (hex) " << hex << this->getTriggerMask() << dec << endl;
237  out << "Overlays " << this->getOverlays() << endl;
238  out << "Triggered hits " << this->size<JDAQTriggeredHit>() << endl;
239  out << "Snapshot hits " << this->size<JDAQSnapshotHit> () << endl;
240 
241  {
242  typedef JDAQTriggeredHit JHit_t;
243 
244  for (JDAQEvent::const_iterator<JHit_t> hit = this->begin<JHit_t>(); hit != this->end<JHit_t>(); ++hit) {
245  out << setw(5) << hit->getModuleID() << ' '
246  << setw(2) << (int) hit->getPMT() << ' '
247  << setw(10) << (int) hit->getT() << ' '
248  << setw(10) << hex << hit->getTriggerMask() << dec << endl;
249  }
250  }
251 
252  if (lpr) {
253 
254  typedef JDAQSnapshotHit JHit_t;
255 
256  for (JDAQEvent::const_iterator<JHit_t> hit = this->begin<JHit_t>(); hit != this->end<JHit_t>(); ++hit) {
257  out << setw(5) << hit->getModuleID() << ' '
258  << setw(2) << (int) hit->getPMT() << ' '
259  << setw(10) << (int) hit->getT() << endl;
260  }
261  }
262 
263  return out;
264  }
265 
266 }
KM3NETDAQ::JDAQEvent
DAQ Event.
Definition: JDAQEvent.hh:34
JAANET::JHit_t
Auxiliary class to set-up Hit.
Definition: JHit_t.hh:25
KM3NETDAQ::JDAQTriggerCounter::getCounter
JTriggerCounter_t getCounter() const
Get trigger counter.
Definition: JDAQTriggerCounter.hh:98
std::vector
Definition: JSTDTypes.hh:12
KM3NETDAQ::JDAQTriggerMask::getTriggerMask
JTriggerMask_t getTriggerMask() const
Get trigger mask.
Definition: JDAQTriggerMask.hh:105
KM3NETDAQ::JDAQTriggeredHit
DAQ triggered hit.
Definition: JDAQTriggeredHit.hh:25
KM3NETDAQ::JDAQEvent::print
std::ostream & print(std::ostream &out, const bool lpr=false) const
Print DAQ Event.
Definition: software/JDAQ/JDAQEvent.cc:227
KM3NETDAQ::JDAQEvent::snapshotHits
std::vector< JDAQSnapshotHit > snapshotHits
Definition: JDAQEvent.hh:318
KM3NETDAQ::JDAQEvent::const_iterator
Template const_iterator.
Definition: JDAQEvent.hh:69
KM3NETDAQ::JDAQEvent::getHits
const std::vector< T > & getHits() const
Get container with hits.
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
KM3NETDAQ::JDAQKeyHit
DAQ key hit.
Definition: JDAQKeyHit.hh:24
KM3NETDAQ::operator==
bool operator==(const JDAQChronometer &first, const JDAQChronometer &second)
Equal operator for DAQ chronometers.
Definition: JDAQChronometer.hh:286
std
Definition: jaanetDictionary.h:36
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition: DataQueue.cc:39
JDAQEvent.hh
KM3NETDAQ::JDAQEvent::triggeredHits
std::vector< JDAQTriggeredHit > triggeredHits
Definition: JDAQEvent.hh:317
KM3NETDAQ::JDAQEvent::const_reverse_iterator
Template const_reverse_iterator.
Definition: JDAQEvent.hh:96