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 usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
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
Auxiliary data structure for floating point format specification.