1#ifndef __JACOUSTICS__JEVENT__
2#define __JACOUSTICS__JEVENT__
70 return event.begin()->getToE();
109 for (T i = __begin; i != __end; ++i) {
113 sort(this->begin(), this->end());
171 const_iterator __hit1 =
this ->begin();
172 const_iterator __end1 =
this ->end();
174 const_iterator __hit2 =
event.begin();
175 const_iterator __end2 =
event.end();
177 buffer.resize(this->size() + event.size());
181 while (__hit1 != __end1 && __hit2 != __end2) {
183 if (*__hit1 < *__hit2) {
188 }
else if (*__hit2 < *__hit1) {
206 out = copy(__hit1, __end1, out);
207 out = copy(__hit2, __end2, out);
209 buffer.resize(
distance(buffer.begin(), out));
228 std::swap(first.
id, second.
id);
247 static inline void overlap(T p, T q,
const double Tmax_s)
249 for (T __q = p, __p = __q++; __p != q && __q != q; __p = __q++) {
253 __q->begin()->getToE() < __p->rbegin()->getToE() + Tmax_s) {
257 for (__p = __q++; __p != q && __q != q; __p = __q++) {
259 if (__q->begin()->getToE() < __p->rbegin()->getToE() + Tmax_s)
283 if (!first.empty() && !second.empty())
284 return first.begin()->getToE() < second.begin()->getToE();
301 out <<
event.getDetectorID() << endl;
302 out << setw(8) <<
event.getCounter() << endl;
303 out << setw(2) <<
event.getOverlays() << endl;
304 out << setw(3) <<
event.getID() << endl;
306 for (const_iterator i = event.begin(); i != event.end(); ++i) {
308 out << setw(10) << i->getID() <<
' '
309 << setw(10) << i->getRunNumber() <<
' '
310 << fixed << setw(12) << setprecision(6) << i->getToA() <<
' '
311 << fixed << setw(12) << setprecision(6) << i->getToE() <<
' '
312 << fixed << setw(8) << setprecision(0) << i->getQ() <<
' '
313 << fixed << setw(8) << setprecision(0) << i->getW() << endl;
328 in >>
static_cast<JCounter&
>(*this);
346 out << static_cast<const JCounter&>(*
this);
350 out << static_cast<const std::vector<JTransmission>&>(*this);
STD extensions for binary I/O.
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Interface for binary input.
Forward declaration of binary output.
Interface for binary output.
Auxiliary classes and methods for acoustic position calibration.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
int getCounter() const
Get counter.
Auxiliary class to determine value of acoustic events.
double value_type
Type definition of time value.
JEvaluator()
Default constructor.
value_type operator()(const JEvent &event) const
Get value of object.
virtual JWriter & write(JWriter &out) const override
Write to output.
void merge(const JEvent &event)
Merge event.
static void overlap(T p, T q, const double Tmax_s)
Empty overlapping events.
JEvent(const int detid, const int counter, const int id, T __begin, T __end)
Constructor.
virtual JReader & read(JReader &in) override
Read from input.
int getID() const
Get emitter identifier.
friend std::ostream & operator<<(std::ostream &out, const JEvent &event)
Write event to output stream.
friend bool operator<(const JEvent &first, const JEvent &second)
Less than operator for acoustics events.
const int getDetectorID() const
Get detector identifier.
virtual ~JEvent()
Virtual destructor.
int getOverlays() const
Get number of overlayed events.
friend void swap(JEvent &first, JEvent &second)
Swap events.
ClassDefOverride(JEvent, 4)
JEvent()
Default constructor.