66 JParser<> zap(
"Example program to trigger acoustic data.");
72 zap[
'a'] =
make_field(detectorFile,
"detector file");
75 zap[
'p'] =
make_field(precision,
"precision time-of-arrival") = 1.0e-6;
80 catch(
const exception &error) {
81 FATAL(error.what() << endl);
97 for (JDetector::const_iterator i =
detector.begin(); i !=
detector.end(); ++i) {
106 emitters[i->getID()] =
JEmitter(i->getID(), i->getUTMPosition() -
detector.getUTMPosition());
123 for (
int counter = 0; inputFile.hasNext(); ++counter) {
125 STATUS(
"counter: " << setw(8) << counter <<
'\r' << flush);
DEBUG(endl);
130 f1[transceiver.emitter.getID()][transceiver.receiver.getID()].push_back(transceiver.getTransmission(*parameters, V[
detector.getUTMZ()]));
141 buffer_type& buffer = receiver->second;
162 buffer_type& f2 = receiver->second;
164 const JQuantile Q1(
"quality", f2.begin(), f2.end(), &JTransmission::getQ,
true);
170 copy(f2.begin(), __end, back_inserter(buffer));
176 sort(buffer.begin(), buffer.end());
181 for (buffer_type::const_iterator p = buffer.begin(); p != buffer.end(); ++p) {
183 buffer_type::const_iterator q = p;
187 while (++q != buffer.end() && q->getToE() - p->getToE() <= parameters.TMax_s) {}
189 if (
distance(p,q) >= parameters.numberOfHits) {
193 STATUS(
"event: " << setw(8) << counter <<
'\r' << flush);
DEBUG(endl);
195 JEvent event(counter, i->first, p, q);
197 DEBUG(
"event: " << endl << event);
199 data.push_back(event);
205 for (JTriggerOutput::const_iterator event = data.begin();
event != data.end(); ++event) {
Utility class to parse command line options.
JPredicate< JResult_t T::*, JComparison::eq > make_predicate(JResult_t T::*member, const JResult_t value)
Helper method to create predicate for data member.
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
std::vector< T >::const_iterator const_iterator
static const double HYDROPHONE_DELAYTIME_US
Hydrophone delay time [us].
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
static const JSoundVelocity getSoundVelocity(1541.0,-17.0e-3,-2000.0)
Function object for velocity of sound.
static const double PIEZO_DELAYTIME_US
Piezo delay time [us].
Auxiliary container for detector elements.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
void load(const JString &file_name, JDetector &detector)
Load detector from input file.
Implementation for velocity of sound.
double getT0(const JModule &module)
Get time offset of optical module.
General purpose class for object reading from a list of file names.
Auxiliary class to compare transmissions.
void copy(const Head &from, JHead &to)
Copy header from from to to.
Match of two events considering overlap in time.
#define DEBUG(A)
Message macros.