57     key_type(
const int first,
 
   59       std::
pair<int, int>(first, second)
 
   70     friend inline std::istream& 
operator>>(std::istream& 
in, key_type& key)
 
   86     friend inline std::ostream& 
operator<<(std::ostream& out, 
const key_type& key)
 
  102     friend inline bool operator<(
const key_type& 
first, 
const key_type& second)
 
  104       if (first.first == second.first)
 
  105         return first.second < second.second;
 
  107         return first.first  < second.first;
 
  119 int main(
int argc, 
char **argv)
 
  133   hydrophones_container   hydrophones;                          
 
  139     JParser<> zap(
"Example program to plot hydrophone data.");
 
  142     zap[
'n'] = 
make_field(numberOfEvents)   = JLimit::max();
 
  154   catch(
const exception &error) {
 
  155     FATAL(error.what() << endl);
 
  173   for (hydrophones_container::const_iterator i = hydrophones.begin(); i != hydrophones.end(); ++i) {
 
  175     for (JDetector::const_iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
  177       if (i->getLocation() == module->getLocation()) {
 
  179         receivers[module->getID()] = 
JReceiver(module->getID(),
 
  180                                                module->getPosition() + i->getPosition(),
 
  181                                                module->getT0() * 1.0e-9);
 
  187   for (tripods_container::const_iterator i = 
tripods.begin(); i != 
tripods.end(); ++i) {
 
  188     emitters[i->getID()]  = 
JEmitter(i->getID(),
 
  189                                      i->getUTMPosition() - 
detector.getUTMPosition());
 
  196   TH1D h0(
MAKE_CSTRING(
"Q0 " << T0), NULL, 100, 0.0, 8.0);
 
  202   while (inputFile.hasNext()) {
 
  204     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  206     const JEvent* evt = inputFile.next();
 
  208     if (!evt->empty() && emitters.has(evt->
getID())) {
 
  212       for (JEvent::const_iterator hit = evt->begin(); hit != evt->end(); ++hit) {
 
  213         if (receivers.has(hit->getID())) {
 
  214           buffer[hit->getID()].push_back(*hit);
 
  224         if (hit->getQ() >= 
Q) {
 
  227           const JPosition3D& 
p2 = receivers[hit->getID()].getPosition();
 
  230           const double       Vi = 
V.getInverseVelocity(D, p1.
getZ(), p2.
getZ());
 
  232           const double       t0 = evt->begin()->getToE()  +  D * Vi;
 
  233           const double       t1 = hit->getToA()  -  t0;
 
  235           H1[key_type(hit->getID(), evt->
getID())]->Fill(t1);
 
  237           const double Q = 
log10(hit->getQ());
 
  239           if (T0(t1)) { h0.Fill(Q); }
 
  240           if (T1(t1)) { h1.Fill(Q); }
 
  249   out << h0 << h1 << H1;
 
Utility class to parse command line options. 
 
Q(UTCMax_s-UTCMin_s)-livetime_s
 
int main(int argc, char *argv[])
 
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member. 
 
bool operator<(const Head &first, const Head &second)
Less than operator. 
 
General purpose class for hash map of unique elements. 
 
ROOT TTree parameter settings. 
 
#define MAKE_CSTRING(A)
Make C-string. 
 
then for HISTOGRAM in h0 h1
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Dynamic ROOT object management. 
 
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
 
double getDistance(const JVector3D &pos) const 
Get distance to point. 
 
Data structure for detector geometry and calibration. 
 
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
 
Data structure for hydrophone. 
 
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 class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
 
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 
 
set_variable E_E log10(E_{fit}/E_{#mu})"
 
void Write(TDirectory &out, const bool wm=false)
Write objects to file. 
 
ROOT TTree parameter settings. 
 
double getQ(const double D_m, const double f_kHz, const double d_m)
Get relative quality for given frequency at given distance. 
 
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...
 
std::istream & operator>>(std::istream &in, JAANET::JHead &header)
Read header from input. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
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. 
 
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
 
Data structure for position in three dimensions. 
 
const JLimit & getLimit() const 
Get limit. 
 
static JEmitterID getEmitterID
Function object for emitter identification. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
int getID() const 
Get identifier. 
 
Data structure for tripod. 
 
then fatal Not enough tripods
 
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
 
do echo Generating $dir eval D
 
double getZ() const 
Get z position.