29 int main(
int argc, 
char **argv)
 
   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>");
 
   97   comment.add(
JMeta(argc, argv));
 
  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());
 
  162     for (
double x = xmin; 
x <= 
xmax; 
x += Tmax_s) {
 
  167         if (!
string->second.empty()) {
 
Utility class to parse command line options. 
 
Q(UTCMax_s-UTCMin_s)-livetime_s
 
int main(int argc, char *argv[])
 
ROOT TTree parameter settings. 
 
JPosition position
position calibration 
 
Auxiliary data structure for floating point format specification. 
 
Data structure for detector geometry and calibration. 
 
void load(JObjectIterator_t &input)
Load calibration data. 
 
data_type::const_iterator const_iterator
 
const_iterator end() const 
end of calibration data 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
Dynamic detector calibration. 
 
General purpose messaging. 
 
Scanning of objects from multiple files according a format that follows from the extension of each fi...
 
bool update(const double t1_s)
Get detector calibrated at given time. 
 
Dynamic detector calibration. 
 
Auxiliary data structure for average. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
General purpose class for object reading from a list of file names. 
 
Utility class to parse command line options. 
 
const_iterator begin() const 
begin of calibration data 
 
void put(const double x)
Put value. 
 
long double getMean() const 
Get mean value. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
#define DEBUG(A)
Message macros.