34   const char* 
const short_t = 
"short";
 
   35   const char* 
const long_t  = 
"long";
 
   36   const char* 
const fft_t   = 
"fft";
 
   47     JParser<> zap(
"Example program to print dynamic detector calibration.");
 
   52     zap[
'F'] = 
make_field(format)              = short_t, long_t, fft_t;
 
   58   catch(
const exception &error) {
 
   59     FATAL(error.what() << endl);
 
   74   dynamics.load(calibrationFile);
 
   82   ostream os(buffer.is_open() ? &buffer : cout.rdbuf());
 
   86   comment.
add(
"documentation: https://common.pages.km3net.de/jpp/Position_calibration.PDF");
 
   88   if      (format == short_t)
 
   89     comment.
add(
"format: string number; UTC [s]; Tx; Ty");
 
   90   else if (format == long_t)
 
   91     comment.
add(
"format: https://indico.cern.ch/event/1014814/contributions/4259426/attachments/2201529/3724129/KM3NeT_position_file_format.pdf");
 
   92   else if (format == fft_t)
 
   93     comment.
add(
"format: <T>");
 
  104   if (format == short_t) {
 
  111         os << setw(4)     << 
string->first << 
';' 
  112            << 
FIXED(20,5) << i->getX()     << 
';' 
  113            << 
FIXED( 9,6) << i->getY().tx  << 
';' 
  114            << 
FIXED( 9,6) << i->getY().ty  << endl;
 
  119   if (format == long_t) {
 
  126       const double t1 = i->getX();
 
  130       os << 
FIXED(20,5) << t1 << 
' '  
  131          << 
FIXED(20,5) << t1 << 
' '  
  132          << setw(4) << 
detector.size() << endl;
 
  134       for (JDetector::const_iterator module = dynamics.begin(); module != dynamics.end(); ++module) {
 
  136         os << setw(4)  << module->getString() << 
' ' 
  137            << setw(2)  << module->getFloor()  << 
' ' 
  138            << setw(10) << module->getID()     << endl;
 
  140         os << 
FIXED(9,2) << module->getX() << 
' ' 
  141            << 
FIXED(9,2) << module->getY() << 
' ' 
  142            << 
FIXED(9,2) << module->getZ() << 
' ' 
  143            << 
FIXED(9,2) << -1.0           << 
' ' 
  144            << 
FIXED(9,2) << -1.0           << 
' ' 
  145            << 
FIXED(9,2) << -1.0           << endl;
 
  150   if (format == fft_t) {
 
  152     double xmin = numeric_limits<double>::max();
 
  153     double xmax = numeric_limits<double>::lowest();
 
  156       if (!string->second.empty()) {
 
  157         xmin = min(
xmin, string->second.getXmin());
 
  158         xmax = max(
xmax, string->second.getXmax());
 
  167         if (!string->second.empty()) {
 
  168           Q.
put(string->second(
x).getLength());
 
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Utility class to parse command line options.
 
General purpose class for object reading from a list of file names.
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary data structure for floating point format specification.
 
data_type::const_iterator const_iterator
 
Dynamic detector calibration.