48 namespace JACOUSTICS {
 
   87     public JClonable< JMatch<hit_type>, JMatch3D>
 
  117       const double dt = fabs(first.
getToA() - second.
getToA());
 
  156       if (first .empty()) 
return false;
 
  157       if (second.empty()) 
return false;
 
  183 int main(
int argc, 
char **argv)
 
  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;
 
  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;
 
  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) {}
 
  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; ) {
 
  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);
 
hit_type(const JPosition3D &position, const JTransmission &transmission)
Constructor. 
 
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. 
 
int main(int argc, char *argv[])
 
double getQ() const 
Get quality. 
 
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member. 
 
Algorithms for hit clustering and sorting. 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
JVector3D getPosition(T __begin, T __end, const JPredicate< JTypename_t, JComparator_t > &predicate)
Get position from element in data which corresponds to given predicate. 
 
General purpose class for hash map of unique elements. 
 
ROOT TTree parameter settings. 
 
Recording of objects on file according a format that follows from the file name extension. 
 
virtual bool operator()(const hit_type &first, const hit_type &second) const override
Match operator. 
 
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)...
 
Function object interface for hit matching. 
 
Auxiliary data structure for floating point format specification. 
 
3D match criterion for acoustic signals. 
 
static const int FACTORY_LIMIT
Bit indicating max nhits reached in trigger. 
 
JMatch3D(const JSoundVelocity &V, const double Tmax_s=0.0)
Constructor. 
 
Data structure for detector geometry and calibration. 
 
static struct JTRIGGER::@76 clusterize
Anonymous structure for clustering of hits. 
 
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
 
double getDistance(const JFirst_t &first, const JSecond_t &second)
Get distance between objects. 
 
Data structure for hydrophone. 
 
bool operator()(const JEvent &first, const JEvent &second) const 
Match criterion. 
 
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. 
 
Base class for match operations for cluster and hit-preprocessing methods. 
 
I/O formatting auxiliaries. 
 
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. 
 
Template class for object cloning. 
 
ROOT TTree parameter settings. 
 
const JPosition3D & getPosition() const 
Get position. 
 
General purpose messaging. 
 
Implementation for depth dependend velocity of sound. 
 
Scanning of objects from multiple files according a format that follows from the extension of each fi...
 
double getT(const double t_s) const 
Get corrected time. 
 
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
 
JEventOverlap(const double Tmax_s=0.0)
Constructor. 
 
do JPlot2D f $WORKDIR detector root
 
virtual double getTime(const double D_m, const double z1, const double z2) const override
Get propagation time of sound. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
Acoustic trigger parameters. 
 
Auxiliary class to define a range between two values. 
 
General purpose class for object reading from a list of file names. 
 
Utility class to parse command line options. 
 
hit_type()
Default constructor. 
 
double getToA() const 
Get calibrated time of arrival. 
 
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. 
 
const JLimit & getLimit() const 
Get limit. 
 
Data structure for position in three dimensions. 
 
bool equals(const JFirst_t &first, const JSecond_t &second, const double precision=std::numeric_limits< double >::min())
Check equality. 
 
JRange< double > time_range
Type definition of time range. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
JSoundVelocity & set(const double z0)
Set depth. 
 
Match of two events considering overlap in time. 
 
double getZ() const 
Get z position. 
 
int EMITTERID
waveform identifier