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.");
58 catch(
const exception &error) {
82 ostream os(buffer.is_open() ? &buffer :
cout.rdbuf());
86 comment.add(
"documentation: https://common.pages.km3net.de/jpp/Position_calibration.PDF");
89 comment.add(
"format: string number; UTC [s]; Tx; Ty");
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>");
111 os <<
setw(4) <<
string->first <<
';'
112 <<
FIXED(20,5) << i->getX() <<
';'
113 <<
FIXED( 9,6) << i->getY().tx <<
';'
126 const double t1 = i->getX();
130 os <<
FIXED(20,5) << t1 <<
' '
131 <<
FIXED(20,5) << t1 <<
' '
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) {
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()) {
168 Q.
put(string->second(x).getLength());