61 int main(
int argc, 
char **argv)
 
   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)) {
 
  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) {
 
  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) {}
 
  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. 
 
int main(int argc, char *argv[])
 
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. 
 
General purpose class for hash map of unique elements. 
 
ROOT TTree parameter settings. 
 
Match of two events considering overlap in time. 
 
Recording of objects on file according a format that follows from the file name extension. 
 
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)
 
Data structure for detector geometry and calibration. 
 
JMODEL::JString getString(const JFit &fit)
Get model parameters of string. 
 
std::vector< JHitW0 > buffer_type
hits 
 
Data structure for hydrophone. 
 
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. 
 
I/O formatting auxiliaries. 
 
JContainer< std::vector< JHydrophone > > hydrophones_container
 
Data structure for transmitter. 
 
Auxiliary wrapper for I/O of container with optional comment (see JComment). 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
int getID() const 
Get identifier. 
 
JPosition3D getPosition(const Vec &pos)
Get position. 
 
JContainer< std::vector< JTripod > > tripods_container
 
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...
 
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. 
 
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. 
 
JTransmission getTransmission(const JToA &data, const JAbstractSoundVelocity &V) const 
Get transmission. 
 
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
 
Data structure for tripod. 
 
#define DEBUG(A)
Message macros.