194   int                      factoryLimit   = 10000;
 
  195   double                   TMaxExtra_s    = 100.0e-6;
 
  213     JParser<> zap(
"Main program to trigger acoustic data.");
 
  215     zap[
'f'] = 
make_field(inputFile,    
"output of JConvertDB -q toashort");
 
  216     zap[
'n'] = 
make_field(numberOfEvents)                                    = JLimit::max();    
 
  217     zap[
'@'] = 
make_field(properties,   
"trigger parameters");
 
  220     zap[
'a'] = 
make_field(detectorFile, 
"detector file");
 
  222     zap[
'p'] = 
make_field(precision,    
"precision time-of-arrival")         = 1.0e-6;
 
  228   catch(
const exception &error) {
 
  229     FATAL(error.what() << endl);
 
  256     if (
i->getFloor() == 0) {                    
 
  263       catch(
const exception&) {
 
  269                                       i->getPosition() + pos, 
 
  270                                       i->getT0() * 1.0e-9);
 
  289   while (inputFile.hasNext()) {
 
  291     if (inputFile.getCounter()%100000 == 0) {
 
  292       STATUS(
"counter: " << setw(8) << inputFile.getCounter() << 
'\r' << flush); 
DEBUG(endl);
 
  298       FATAL(
"Invalid detector identifier " << parameters->
DETID << 
" != " << 
detector.getID() << endl);
 
  301     if (receivers.has(parameters->
DOMID)) {
 
  305       double toa = parameters->
TOA_S();
 
  316       catch(
const exception&) {}    
 
  331       buffer_type::iterator __end = unique(receiver->second.begin(), receiver->second.end(), 
JTransmission::equals(precision));
 
  335       for (buffer_type::const_iterator p = receiver->second.begin(); p != __end; ++p) {
 
  336         if (p->getQ() >= parameters.Q * (parameters.Q <= 1.0 ? p->getW() : 1.0)) {
 
  347     for (buffer_type::const_iterator p = data.begin(); p != data.end(); ++p) {
 
  349       if (
distance(data.cbegin(),p)%1000 == 0) {
 
  350         STATUS(
"processed[" << 
i->first << 
"]: " << 
FIXED(5,1) << (
double) (100 * 
distance(data.cbegin(),p)) / (double) data.size() << 
"%" << 
'\r' << flush); 
DEBUG(endl);
 
  353       buffer_type::const_iterator q = p;
 
  355       while (++q != data.end() && q->getToA() - p->getToA() <= parameters.TMax_s) {}
 
  357       if (
distance(p,q) >= parameters.numberOfHits) {
 
  361           buffer_type::iterator 
root = buffer.begin();
 
  362           buffer_type::iterator __p  = buffer.begin();
 
  363           buffer_type::iterator __q  = buffer.begin();
 
  370           for (buffer_type::const_iterator 
i = p; ++
i != q; ) {
 
  377           if (
distance(root,__q) >= parameters.numberOfHits) { 
 
  379             __q = 
clusterize(__p, __q, match, parameters.numberOfHits - 1);
 
  381             if (
distance(root,__q) >= parameters.numberOfHits) {
 
  391         if (out[0].empty()) {
 
  395         } 
else if (
overlap(out[0],out[1])) {
 
  397           out[0].
merge(out[1]);                      
 
  410     if (!out[0].empty()) {
 
  415     STATUS(
"triggers[" << 
i->first << 
"]: " << setw(7) << out[0].getCounter() << endl);
 
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. 
 
void merge(const JEvent &event)
Merge event. 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object 
 
int getCounter() const 
Get counter. 
 
Match of two events considering overlap in time. 
 
Utility class to parse parameter values. 
 
int32_t WAVEFORMID
DOM unique identifeir. 
 
*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)...
 
Time-of-arrival data from acoustic piezo sensor or hydrophone. 
 
Auxiliary data structure for floating point format specification. 
 
3D match criterion for acoustic signals. 
 
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
 
do JPlot2D f $WORKDIR canberra[${EMITTER}\] root
 
JMODEL::JString getString(const JFit &fit)
Get model parameters of string. 
 
std::vector< JHitW0 > buffer_type
hits 
 
const JPolynome f1(1.0, 2.0, 3.0)
Function. 
 
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. 
 
JContainer< std::vector< JHydrophone > > hydrophones_container
 
Auxiliary wrapper for I/O of container with optional comment (see JComment). 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
int32_t RUN
detector identifier 
 
int getID() const 
Get identifier. 
 
JPosition3D getPosition(const Vec &pos)
Get position. 
 
uint32_t QUALITYFACTOR
The ticks (16ns) part of the DAQ frame timestamp. 
 
const JPosition3D & getPosition() const 
Get position. 
 
double TOA_S() const 
Time of Arrival, expressed in seconds relative to Unix epoch (1 January 1970 00:00:00 UTC) ...
 
uint32_t QUALITYNORMALISATION
A measure of how good the waveform match was to the signal. 
 
Implementation for depth dependend 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. 
 
Auxiliary class to compare transmissions. 
 
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. 
 
uint32_t DOMID
DAQ run number. 
 
static JEmitterID getEmitterID
Function object for emitter identification. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
static struct JTRIGGER::clusterize clusterize
 
#define DEBUG(A)
Message macros.