198   hydrophones_container    hydrophones;            
 
  206     JParser<> zap(
"Main program to trigger acoustic data.");
 
  208     zap[
'f'] = 
make_field(inputFile,    
"output of JConvertDB -q toashort");
 
  209     zap[
'n'] = 
make_field(numberOfEvents)                                    = JLimit::max();    
 
  213     zap[
'a'] = 
make_field(detectorFile, 
"detector file");
 
  215     zap[
'p'] = 
make_field(precision,    
"precision time-of-arrival")         = 1.0e-6;
 
  222   catch(
const exception &error) {
 
  223     FATAL(error.what() << endl);
 
  240   const double        TMaxExtra_s    =  1.0e-3;
 
  242   const JMatch3D      match(V, TMaxExtra_s);
 
  248   for (JDetector::const_iterator i = 
detector.begin(); i != 
detector.end(); ++i) {
 
  252     if (i->getFloor() == 0) {                    
 
  259       catch(
const exception&) {
 
  264     receivers[i->getID()] = 
JReceiver(i->getID(), 
 
  265                                       i->getPosition() + pos, 
 
  266                                       i->getT0() * 1.0e-9);
 
  288   while (inputFile.hasNext()) {
 
  290     if (inputFile.getCounter()%1000 == 0) {
 
  291       STATUS(
"counter: " << setw(8) << inputFile.getCounter() << 
'\r' << flush); 
DEBUG(endl);
 
  297       oid = parameters->
DETID;
 
  300     if (oid != parameters->
DETID) {              
 
  301       FATAL(
"Invalid detector identifier " << parameters->
DETID << 
" != " << oid << endl);
 
  304     if (waveforms.empty() || waveforms.count(parameters->
EMITTERID)) {
 
  306       if (receivers.has(parameters->
DOMID)) {
 
  327     buffer_type& buffer = receiver->second;
 
  341     buffer_type&    f2   = receiver->second;
 
  342     double          Qmin = parameters.Q;
 
  344     if (parameters.Q > 0.0 && parameters.Q < 1.0) {
 
  348       Qmin = Q1.getQuantile(parameters.Q);
 
  353     copy(f2.begin(), __end, back_inserter(data));
 
  362   int         number_of_events = 0;
 
  364   for (buffer_type::const_iterator p = data.begin(); p != data.end(); ++p) {
 
  366     if (
distance(data.cbegin(),p)%1000 == 0) {
 
  367       STATUS(
"processed: " << 
FIXED(5,1) << (
double) (100 * 
distance(data.cbegin(),p)) / (double) data.size() << 
"%" << 
'\r' << flush); 
DEBUG(endl);
 
  370     buffer_type::const_iterator q = p;
 
  372     while (++q != data.end() && q->getToA() - p->getToA() <= parameters.TMax_s) {}
 
  374     if (
distance(p,q) >= parameters.numberOfHits) {
 
  378         buffer_type::iterator 
root = buffer.begin();
 
  379         buffer_type::iterator __p  = buffer.begin();
 
  380         buffer_type::iterator __q  = buffer.begin();
 
  387         for (buffer_type::const_iterator i = p; ++i != q; ) {
 
  394         if (
distance(root,__q) >= parameters.numberOfHits) { 
 
  396           __q = 
clusterize(__p, __q, match, parameters.numberOfHits - 1);
 
  398           if (
distance(root,__q) >= parameters.numberOfHits) {
 
  399             out[1] = 
JEvent(oid, ++number_of_events, 
ID, root, __q);
 
  405         out[1] = 
JEvent(oid, ++number_of_events, 
ID, p, q);
 
  410         if (!out[0].empty()) {
 
  418         out[0].merge(out[1]);                      
 
  425   if (!out[0].empty()) {
 
  430   STATUS(
"triggers: " << setw(7) << number_of_events << endl);
 
static struct JTRIGGER::@74 clusterize
Anonymous structure for clustering of hits. 
 
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. 
 
then JPlot1D f $WORKDIR postfit[prefit\] root
 
std::string DETID
constraint 
 
*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)...
 
Auxiliary data structure for floating point format specification. 
 
static const int FACTORY_LIMIT
Bit indicating max nhits reached in trigger. 
 
Auxiliary class for defining the range of iterations of objects. 
 
static const JSoundVelocity getSoundVelocity(1541.0,-17.0e-3,-2000.0)
Function object for velocity of sound. 
 
Auxiliary wrapper for I/O of container with optional comment (see JComment). 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
const array_type< JValue_t > & make_array(const JValue_t(&array)[N])
Method to create array of values. 
 
int getID() const 
Get identifier. 
 
JPosition3D getPosition(const Vec &pos)
Get position. 
 
const JPosition3D & getPosition() const 
Get position. 
 
double getQ(const double D_m, const double f_kHz, const double d_m)
Get relative quality for given frequency at given distance. 
 
Implementation for velocity of sound. 
 
double getT(const double t_s) const 
Get corrected time. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
General purpose class for object reading from a list of file names. 
 
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
 
Auxiliary class to compare transmissions. 
 
void copy(const Head &from, JHead &to)
Copy header from from to to. 
 
Data structure for position in three dimensions. 
 
const JLimit & getLimit() const 
Get limit. 
 
bool equals(const JFirst_t &first, const JSecond_t &second, const double precision=std::numeric_limits< double >::min())
Check equality. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
Match of two events considering overlap in time. 
 
int EMITTERID
waveform identifier