35     inline bool operator()(
const JFit& 
first, 
const JFit& second)
 const 
   37       if (first.
id == second.
id) {
 
   39         if (first.
tx == second.
tx) {
 
   41           return first.
ty < second.
ty;
 
   45           return first.
tx < second.
tx;
 
   50         return first.
id < second.
id;
 
   62     inline bool operator()(
const JEvt& first, 
const JEvt& second)
 const 
   64       if (first.
oid == second.
oid) {
 
   74                 if (first.size() == second.size()) {
 
   76                   for (JEvt::const_iterator
 
   78                          p1 = second.begin(); p0 != first.end() && 
p1 != second.end(); ++p0, ++
p1) {
 
   80                     if ((*
this)(*p0, *
p1)) {
 
   89                   return first.size() < second.size();
 
  114         return first.
oid < second.
oid;
 
  139     std::ostream& operator()(std::ostream& out, 
const std::string& filename, 
const int index, 
const JEvt& evt, 
const std::string& prefix, 
const std::string& postfix)
 const 
  145         out << prefix << (prefix == 
"" ? 
"" : 
" ")
 
  146             << setw(width)  << left << filename << right    << 
' ' 
  147             << 
"[" << 
FILL(6,
'0') << index << 
"]" << 
FILL() << 
' ' 
  151             << (postfix == 
"" ? 
"" :  
" ") << postfix       << endl;
 
  167     std::ostream& operator()(std::ostream& out, 
const JFit& 
object, 
const std::string& prefix, 
const std::string& postfix)
 const 
  173         out << prefix << (prefix == 
"" ? 
"" : 
" ")
 
  174             << 
FILL(4,
'0') << 
object.id << 
FILL()            << 
' ' 
  175             << 
FIXED(9,6)  << 
object.tx                      << 
' ' 
  176             << 
FIXED(9,6)  << 
object.ty                      << 
' ' 
  177             << (postfix == 
"" ? 
"" :  
" ") << postfix        << endl;
 
  191 int main(
int argc, 
char **argv)
 
  202     JParser<> zap(
"Program to compare acoustics fit data.");
 
  204     zap[
'f'] = 
make_field(inputFile,    
"two outputs of JKatoomba[.sh]");
 
  205     zap[
'n'] = 
make_field(numberOfEvents)                                    = JLimit::max();    
 
  210   catch(
const exception &error) {
 
  211     FATAL(error.what() << endl);
 
  214   if (inputFile.size() != 2
u) {
 
  215     FATAL(
"Wrong number of input files " << inputFile.size() << endl); 
 
  218   const size_t  width = max(inputFile[0].size(), inputFile[1].size());
 
  223   for (
int i = 0; i != 2; ++i) {
 
  226       buffer[i].push_back(*
in.next());
 
  229     sort(buffer[i].begin(), buffer[i].end());
 
  233     for (
int i = 0; i != 2; ++i) {
 
  240   int count[] = { 0, 0 };
 
  243          p0 = buffer[0].begin(),
 
  244          p1 = buffer[1].begin(); p0 != buffer[0].end() && 
p1 != buffer[1].end(); ) {
 
  246     for ( ; p0 != buffer[0].end() && 
p1 != buffer[1].end() && compare(*p0,*
p1); ++p0, ++
count[1]) {
 
  247       print(cout, inputFile[0], 
distance(buffer[0].cbegin(),p0), *p0, 
">>", 
"");
 
  250     for ( ; p0 != buffer[0].end() && 
p1 != buffer[1].end() && compare(*
p1,*p0); ++
p1, ++
count[1]) {
 
  254     if (p0 != buffer[0].end() && 
p1 != buffer[1].end()) {
 
  256       if (!compare(*p0,*
p1) && !compare(*
p1,*p0)) {
 
  260         print(cout, inputFile[0], 
distance(buffer[0].cbegin(),p0), *p0, 
"", 
"\\");
 
  267         if (p0->oid           == 
p1->oid           &&
 
  268             p0->UNIXTimeStart == 
p1->UNIXTimeStart &&
 
  269             p0->UNIXTimeStop  == 
p1->UNIXTimeStop) {
 
  271           print(cout, inputFile[0], 
distance(buffer[0].cbegin(),p0), *p0, 
"", 
"");
 
  274           JEvt::const_iterator i0 = p0->begin();
 
  275           JEvt::const_iterator i1 = 
p1->begin();
 
  277           for ( ; i0 != p0->end() && i1 != 
p1->end(); ++i0, ++i1) {
 
  278             if (compare(*i0, *i1) || compare(*i1,*i0)) {
 
  279               print(cout, *i0, 
">>", 
"");
 
  280               print(cout, *i1, 
"<<", 
"");
 
  284           for ( ; i0 != p0->end(); ++i0) {
 
  285             print(cout, *i0, 
">>", 
"");
 
  288           for ( ; i1 != 
p1->end(); ++i1) {
 
  289             print(cout, *i1, 
"<<", 
"");
 
  294           print(cout, inputFile[0], 
distance(buffer[0].cbegin(),p0), *p0, 
">>", 
"");
 
  299       if (compare(*p0,*
p1) || compare(*
p1,*p0)) {
 
  309   STATUS(
"Number of differences / events: " << 
count[1] << 
" / " << 
count[0] << endl);
 
  311   if (buffer[0].size() != buffer[1].size()) {
 
  312     FATAL(
"Different size " << buffer[0].size() << 
' ' << buffer[1].size() << endl);
 
  316     FATAL(
"Number of differences " << 
count[1] << endl);
 
Utility class to parse command line options. 
 
int npar
number of fit parameters 
 
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. 
 
std::string oid
detector identifier 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
ROOT TTree parameter settings. 
 
Auxiliary data structure for floating point format specification. 
 
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
 
Scanning of objects from a single file according a format that follows from the extension of each fil...
 
double UNIXTimeStop
stop time 
 
Auxiliary class for defining the range of iterations of objects. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
General purpose messaging. 
 
Auxiliary data structure for sequence of same character. 
 
double UNIXTimeStart
start time 
 
Utility class to parse command line options. 
 
Object reading from a list of files. 
 
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 JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in