86     JParser<> zap(
"Main program to trigger events in acoustic data.");
 
   88     zap[
'f'] = 
make_field(inputFile,    
"output of JConvertDB -q toashort");
 
   89     zap[
'n'] = 
make_field(numberOfEvents)                                    = JLimit::max();    
 
   93     zap[
'a'] = 
make_field(detectorFile, 
"detector file");
 
   98     zap[
'p'] = 
make_field(precision,    
"precision time-of-arrival")         = 1.0e-6;
 
  103   catch(
const exception &error) {
 
  104     FATAL(error.what() << endl);
 
  129       if (
i->getFloor() == 0) {                    
 
  136         catch(
const exception&) {
 
  142                                         i->getPosition() + pos, 
 
  143                                         i->getT0() * 1.0e-9);
 
  147   for (tripods_container::const_iterator 
i = 
tripods.begin(); 
i != 
tripods.end(); ++
i) {
 
  149                                      i->getUTMPosition() - 
detector.getUTMPosition());
 
  152   for (transmitters_container::const_iterator 
i = transmitters.begin(); 
i != transmitters.end(); ++
i) {
 
  157     catch(
const exception&) {
 
  174    public map<int, JQuantile>
 
  176     long long int sum()
 const  
  178       long long int count = 0;
 
  180       for (const_iterator 
i = this->begin(); 
i != this->end(); ++
i) {
 
  181         count += 
i->second.getCount();
 
  200   while (inputFile.hasNext()) {
 
  202     if (inputFile.getCounter()%10000 == 0) {
 
  203       STATUS(
"counter: " << setw(8) << inputFile.getCounter() << 
'\r' << flush); 
DEBUG(endl);
 
  209       FATAL(
"Invalid detector identifier " << parameters->
DETID << 
" != " << 
detector.getID() << endl);
 
  216       number_of_entries[parameters->
WAVEFORMID].put(1);
 
  218       if (emitters.has(
id)) {
 
  220         if (receivers.has(parameters->
DOMID)) {
 
  224           f1[transceiver.emitter.getID()][transceiver.receiver.getID()].push_back(transceiver.getTransmission(*parameters, 
V));
 
  228         number_of_misses[id].put(1);
 
  231     catch(
const exception&) {
 
  232       number_of_aliens[parameters->
WAVEFORMID].put(1);
 
  237   for (map_type::const_iterator 
i = number_of_entries.begin();  
i != number_of_entries.end();  ++
i) {
 
  238     STATUS(
"number of entries:  " << setw(3) << 
i->first << 
' ' << setw(8) << 
i->second.getCount() << endl);
 
  241   for (map_type::const_iterator 
i = number_of_aliens.begin();  
i != number_of_aliens.end();  ++
i) {
 
  242     STATUS(
"number of aliens:   " << setw(3) << 
i->first << 
' ' << setw(8) << 
i->second.getCount() << endl);
 
  245   for (map_type::const_iterator 
i = number_of_misses.begin();  
i != number_of_misses.end();  ++
i) {
 
  246     STATUS(
"number of misses:   " << setw(3) << 
i->first << 
' ' << setw(8) << 
i->second.getCount() << endl);
 
  261       buffer_type::iterator __end = unique(receiver->second.begin(), receiver->second.end(), 
JTransmission::equals(precision));
 
  265       for (buffer_type::const_iterator p = receiver->second.begin(); p != __end; ++p) {
 
  266         if (p->getQ() >= parameters.Q * (parameters.Q <= 1.0 ? p->getW() : 1.0)) {
 
  267           buffer.push_back(*p);
 
  272     sort(buffer.begin(), buffer.end());          
 
  278     for (buffer_type::const_iterator p = buffer.begin(); p != buffer.end(); ++p) {
 
  280       buffer_type::const_iterator q = p;
 
  284       while (++q != buffer.end() && q->getToE() - p->getToE() <= parameters.TMax_s) {}
 
  288       if (
distance(p,q) >= parameters.numberOfHits) {
 
  290         JEvent event(
detector.getID(), number_of_triggers.sum(), 
i->first, p, q);
 
  292         number_of_triggers[
i->first].put(event.size());
 
  294         DEBUG(
"trigger: " << endl << event);
 
  300         } 
else if (match(out, event)) {
 
  317     STATUS(
"number of toes:     " << setw(3) << 
i->first << 
' ' << setw(8) << buffer.size());
 
  318     if (Q.getCount() > 0) {
 
  320              ' ' << 
FIXED(6,1) << Q.getXmin() << 
 
  321              ' ' << 
FIXED(6,1) << Q.getXmax());
 
  325     for (JTriggerOutput::const_iterator event = data.begin(); 
event != data.end(); ++event) {
 
  327       number_of_events[
event->getID()].put(event->size());
 
  334   for (map_type::const_iterator 
i = number_of_triggers.begin(); 
i != number_of_triggers.end(); ++
i) {
 
  335     STATUS(
"number of triggers: " << setw(3) << 
i->first << 
' ' << setw(8) << 
i->second.getCount() << endl);
 
  338   for (map_type::const_iterator 
i = number_of_events.begin();   
i != number_of_events.end();   ++
i) {
 
  339     STATUS(
"number of events:   " << setw(3) << 
i->first << 
' ' << setw(8) << 
i->second.getCount() << 
' ' << 
FIXED(7,3) << 
i->second.getMean() << endl);
 
Utility class to parse command line options. 
Q(UTCMax_s-UTCMin_s)-livetime_s
JPredicate< JResult_t T::*, JComparison::eq > make_predicate(JResult_t T::*member, const JResult_t value)
Helper method to create predicate for data member. 
JContainer< std::vector< JTransmitter > > transmitters_container
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. 
Match of two events considering overlap in time. 
then usage $script< input file >[option] nPossible options count
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. 
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
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 
JPosition3D getPosition(const Vec &pos)
Get position. 
JContainer< std::vector< JTripod > > tripods_container
Implementation for depth dependend velocity of sound. 
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. 
JPosition3D getPiezoPosition()
Get relative position of piezo in optical module. 
static const int PIEZO_DISABLE
Enable (disable) use of piezo if this status bit is 0 (1);. 
Auxiliary class to compare transmissions. 
static const int HYDROPHONE_DISABLE
Enable (disable) use of hydrophone if this status bit is 0 (1);. 
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. 
std::map< int, range_type > map_type
uint32_t DOMID
DAQ run number. 
static JEmitterID getEmitterID
Function object for emitter identification. 
do set_variable DETECTOR_TXT $WORKDIR detector
#define DEBUG(A)
Message macros.