202    JParser<> zap(
"Program to compare acoustics fit data.");
 
  204    zap[
'f'] = 
make_field(inputFile,    
"two outputs of JKatoomba[.sh]");
 
  210  catch(
const exception &error) {
 
  211    FATAL(error.what() << endl);
 
  214  if (inputFile.size() != 2u) {
 
  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 };
 
  242  for (vector<JEvt>::const_iterator
 
  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->detid         == 
p1->detid         &&
 
  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);
 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.