Example program to find smallest distance between two points.  
More...
#include <string>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <vector>
#include "TRandom3.h"
#include "JGeometry3D/JVector3D.hh"
#include "JGeometry3D/JGeometry3DToolkit.hh"
#include "Jeep/JPrint.hh"
#include "Jeep/JTimer.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"
 
Go to the source code of this file.
 | 
| int  | main (int argc, char *argv[]) | 
|   | 
Example program to find smallest distance between two points. 
- Author
 - mdejong 
 
Definition in file JGetSmallestDistance3D.cc.
 
      
        
          | int main  | 
          ( | 
          int  | 
          argc,  | 
        
        
           | 
           | 
          char *  | 
          argv[]  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 25 of file JGetSmallestDistance3D.cc.
   37     JParser<> zap(
"Example program to find smallest distance between two points.");
 
   47   catch(
const exception &error) {
 
   48     FATAL(error.what() << endl);
 
   51   gRandom->SetSeed(seed);
 
   61   if (inputFile != 
"") {
 
   63     ifstream 
in(inputFile.c_str());
 
   65     for (
double x, y, z; 
in >> x >> y >> z; ) {
 
   66       buffer.push_back(JVector3D(x,y,z));
 
   73     NOTICE(
"Seed: " << gRandom->GetSeed() << endl);
 
   77       buffer.push_back(JVector3D(gRandom->Uniform(-1.0, +1.0),
 
   78                                  gRandom->Uniform(-1.0, +1.0),
 
   79                                  gRandom->Uniform(-1.0, +1.0)));
 
   86       for (const_iterator i = buffer.begin(); i != buffer.end(); ++i)
 
   87         out << setw(7) << i->getX() << 
' '  
   88             << setw(7) << i->getX() << 
' '  
   89             << setw(7) << i->getZ() << endl;
 
   95   if (buffer.size() < 2) {
 
   96     FATAL(
"Not enough points." << endl);
 
   99   for (const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
 
  100     DEBUG(i->getX() << 
' ' << i->getY() << 
' ' << i->getZ() << endl);
 
  105     JTimer timer(
"classic");
 
  109     double dmin = numeric_limits<double>::max();
 
  111     for (const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
 
  112       for (const_iterator 
j = i; ++
j != buffer.end(); ) {
 
  114         const double d = i->getDistance(*
j);
 
  124     cout << 
"Minimal distance " << 
SCIENTIFIC(12,5) << dmin << endl;
 
  129   JTimer timer(
"O(n log(n))");
 
  137   cout << 
"Minimal distance " << 
SCIENTIFIC(12,5) << dmin << endl;
 
Utility class to parse command line options. 
 
static const JSmallestDistance3D getSmallestDistance3D
Function object for smallest distance determination. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
 
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 typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
 
Auxiliary data structure for floating point format specification. 
 
#define DEBUG(A)
Message macros.