1 #ifndef __ANTARESDAQ_PHYSICSEVENT__
2 #define __ANTARESDAQ_PHYSICSEVENT__
49 out << setw(5) << (int)
object.
lcm_id <<
' '
50 << setw(2) << (int)
object.
ars_id <<
' ';
51 out << static_cast<const T&>(
object);
154 MinT_(+
std::numeric_limits<double>::max()),
155 MaxT_(-
std::numeric_limits<double>::max()),
175 const unsigned int RunNumber()
const {
return runNumber; }
178 const unsigned int EventType()
const {
return EventType_; }
182 const double MinT()
const {
return MinT_; }
184 const double MaxT()
const {
return MaxT_; }
186 const float MaxA()
const {
return MaxA_; }
188 const float TotA()
const {
return TotA_; }
220 template<
class T>
size_t size()
const;
239 out <<
" +-------------------------------------+ " << endl;
240 out <<
" | EventType_ " <<
object.EventType_ << endl;
241 out <<
" | RunNumber_ " <<
object.RunNumber() << endl;
242 out <<
" | TriggerCounter_ " <<
object.TriggerCounter_ << endl;
243 out <<
" | FrameTarget_ " <<
object.FrameTarget() << endl;
244 out <<
" | FrameTime1_ " <<
object.FrameTime1() << endl;
245 out <<
" | FrameTime2_ " <<
object.FrameTime2() << endl;
246 out <<
" | FrameIndex_ " <<
object.FrameIndex() << endl;
247 out << setprecision(11) << setw(14)
248 <<
" | MinT_ " <<
object.MinT_ << endl;
249 out << setprecision(11) << setw(14)
250 <<
" | MaxT_ " <<
object.MaxT_ << endl;
251 out << setprecision( 6) << setw(10)
252 <<
" | MaxA_ " <<
object.MaxA_ << endl;
253 out << setprecision( 6) << setw(10)
254 <<
" | TotA_ " <<
object.TotA_ << endl;
255 out <<
" +-------------------------------------+ " << endl;
256 out <<
" | Triggered hits " <<
object.TriggeredSPEHits_.size() << endl;
257 out <<
" | SPE hits " <<
object.SPEHits_.size() << endl;
258 out <<
" | AWF hits " <<
object.AWFHits_.size() << endl;
259 out <<
" | DWF hits " <<
object.DWFHits_.size() << endl;
260 out <<
" +-------------------------------------+ " << endl;
271 template<>
inline size_t
272 PhysicsEvent::size<TriggeredSPE_Hit>()
const
274 return TriggeredSPEHits_.size();
278 template<>
inline size_t
279 PhysicsEvent::size<SPE_Hit>()
const
281 return SPEHits_.size();
285 template<>
inline size_t
286 PhysicsEvent::size<AWF_Hit>()
const
288 return AWFHits_.size();
292 template<>
inline size_t
293 PhysicsEvent::size<DWF_Hit>()
const
295 return DWFHits_.size();
300 PhysicsEvent::begin<TriggeredSPE_Hit>()
const
302 return TriggeredSPEHits_.begin();
307 PhysicsEvent::end<TriggeredSPE_Hit>()
const
309 return TriggeredSPEHits_.end();
314 PhysicsEvent::begin<SPE_Hit>()
const
316 return SPEHits_.begin();
321 PhysicsEvent::end<SPE_Hit>()
const
323 return SPEHits_.end();
328 PhysicsEvent::begin<AWF_Hit>()
const
330 return AWFHits_.begin();
335 PhysicsEvent::end<AWF_Hit>()
const
337 return AWFHits_.end();
342 PhysicsEvent::begin<DWF_Hit>()
const
344 return DWFHits_.begin();
349 PhysicsEvent::end<DWF_Hit>()
const
351 return DWFHits_.end();
367 first.
tvc == second.
tvc &&
383 first.
tvc != second.
tvc ||
397 return (first.
MinT() < second.
MaxT() &&
410 return (first.
MinT() > second.
MaxT() ||
423 return first.
MinT() < second.
MinT();
bool operator<(const PhysicsEvent &first, const PhysicsEvent &second)
Comparator for physics event; earliest event first.
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
bool operator==(const SPE_Hit &first, const SPE_Hit &second)
equal operator for SPE hit.
bool operator!=(const SPE_Hit &first, const SPE_Hit &second)
not-equal operator for SPE hit.
friend std::ostream & operator<<(std::ostream &out, const ARS_Hit &object)
print ASCII
unsigned short lcm_id
LCM identifier.
unsigned char ars_id
ARS identifier.
ARS_Hit()
Default constructor.
AWF_Hit()
Default constructor.
DWF_Hit()
Default constructor.
Interface for event classes.
Template vector<T>::iterator.
const_iterator(const typename std::vector< T >::const_iterator &i)
const_iterator & operator=(const typename std::vector< T >::const_iterator &i)
const unsigned int TriggerCounter() const
Trigger nr.
friend std::ostream & operator<<(std::ostream &out, const PhysicsEvent &object)
Print ASCII.
const unsigned int EventType() const
Type of PhysicsEvent.
const std::vector< SPE_Hit > & SPE_Hits() const
SPE hits.
std::vector< SPE_Hit > SPEHits_
ClassDef(PhysicsEvent, 2)
std::vector< DWF_Hit > DWFHits_
const unsigned int FrameTime2() const
least significant word of frametime
const float TotA() const
sum of all amplitudes
size_t size() const
template size method for nested vector
const unsigned int FrameTime1() const
most significant word of frametime
std::vector< T >::const_iterator end() const
template end const_iterator for nested vector
unsigned int TriggerCounter_
virtual ~PhysicsEvent()
Virtual destructor.
const std::vector< TriggeredSPE_Hit > & TriggeredSPEHits() const
Triggered hits.
const std::vector< DWF_Hit > & DWF_Hits() const
Dynode hits.
std::vector< T >::const_iterator begin() const
template begin const_iterator for nested vector
const double MinT() const
time of first hit in event
const unsigned int FrameIndex() const
frame index
const float MaxA() const
amplitude of largest hit in event
const unsigned int RunNumber() const
Run number.
const double MaxT() const
time of last hit in event
const unsigned short FrameTarget() const
Identifier of processor that created this event.
PhysicsEvent()
Default constructor.
const std::vector< AWF_Hit > & AWF_Hits() const
Waveform hits.
std::vector< AWF_Hit > AWFHits_
std::vector< TriggeredSPE_Hit > TriggeredSPEHits_
SPE_Hit()
Default constructor.
unsigned char avc
ARS Analogue to Voltage Convertor.
unsigned char tvc
ARS Time to Voltage Convertor.
unsigned int timestamp
ARS timestamp (24 bits)
ClassDef(TriggeredSPE_Hit, 2)
TriggeredSPE_Hit()
Default constructor.