290{
293
299 bool option;
302
303 try {
304
305 JParser<> zap(
"Auxiliary program to align two detectors.");
306
315
317 }
318 catch(const exception &error) {
320 }
321
322
325 FATAL(
"No tripod file.");
326 }
327 }
328
329
332
333 try {
335 }
338 }
339
340 try {
342 }
345 }
346
347
349
351
353 if (fit.hasModule(
module->getID())) {
355 }
356 }
357
358
360
363
364 simplex.value =
JModel_t(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
365
366 simplex.step.resize(6);
367
368 simplex.step[0] =
JModel_t(0.01, 0.00, 0.00, 0.0, 0.0, 0.0);
369 simplex.step[1] =
JModel_t(0.00, 0.01, 0.00, 0.0, 0.0, 0.0);
370 simplex.step[2] =
JModel_t(0.00, 0.00, 0.01, 0.0, 0.0, 0.0);
371 simplex.step[3] =
JModel_t(0.00, 0.00, 0.00, 5.0e-4, 0.0, 0.0);
372 simplex.step[4] =
JModel_t(0.00, 0.00, 0.00, 0.0, 1.0e-4, 0.0);
373 simplex.step[5] =
JModel_t(0.00, 0.00, 0.00, 0.0, 0.0, 1.0e-4);
374
375 const double chi2 = simplex(fit,
data.begin(),
data.end());
376
377 cout <<
"Number of iterations " << simplex.numberOfIterations <<
endl;
379
381
388
389
391
393
395
397
400
401 module->add(p2 - p1);
402 }
403
404 try {
406 }
409 }
410
412
414
416
418
421
422 tripod->add(p2 -
p1);
423 }
424
426 }
427}
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Simple fit method based on Powell's algorithm, see reference: Numerical Recipes in C++,...
Data structure for position in three dimensions.
const JPosition3D & getPosition() const
Get position.
Template definition of a multi-dimensional oscillation probability interpolation table.
void load()
Load oscillation probability table.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
void store(const std::string &file_name, const JDetector &detector)
Store detector to output file.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for floating point format specification.
Type definition of range.
void store(const char *file_name) const
Store to output file.