5 #include "dbclient/KM3NeTDBClient.h"
32 static const char*
const RUN_t =
"RUN";
42 int main(
int argc,
char **argv)
61 JParser<> zap(
"Auxiliary program to download official detector.");
69 zap[
'R'] =
make_field(ranking,
"ranking (1 is best)") = 1;
70 zap[
'V'] =
make_field(variant,
"detector version") = getDetectorVersions<string>();
84 catch(
const exception &error) {
85 FATAL(error.what() << endl);
92 detid = getDetector<string>(detid);
98 DEBUG(setw(2) << js << endl);
101 FATAL(
"JSon error code not okay." << endl);
105 FATAL(
"JSon outout does not contain data." << endl);
108 struct calibration_type :
109 public vector<JRunCalibration_t>
119 const_iterator p = find_if(this->begin(), this->end(),
make_predicate(&JRunCalibration_t::CalibrationType, type));
121 if (p != this->end())
122 return p->CalibrationId;
124 FATAL(
"No calibration type " << type << endl);
128 const calibration_type calibration = js[
Data_t].get<calibration_type>();
131 for (
const auto& element : calibration) {
132 cout << setw(24) << left << element.CalibrationType <<
' ' << right << element.CalibrationId << endl;
165 for (
const auto& element : calibration) {
174 ERROR(
"Invalid JSon data " << setw(2) << buffer);
179 if (!format.empty()) {
186 cout <<
' ' << calibration[*i];
192 catch(
const exception& error) {
193 FATAL(error.what() << endl);
Utility class to parse command line options.
JPredicate< JResult_t T::*, JComparison::eq > make_predicate(JResult_t T::*member, const JResult_t value)
Helper method to create predicate for data member.
int main(int argc, char *argv[])
static const std::string STATUS_CALIBRATION_t
(module|PMT) status
bool is_valid(const json &js)
Check validity of JSon data.
static const std::string DOM_ROTATION_CALIBRATION_t
(optical|base) module orientations
bool setToLatestVersion()
Set to latest version.
T get(const JHead &header)
Get object from header.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
const std::string & getVersion() const
Get version.
Data structure for detector geometry and calibration.
#define MAKE_STRING(A)
Make string.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
static const std::string PMT_T0_CALIBRATION_t
PMT time offsets.
static const std::string COMPASS_CALIBRATION_t
compass alignment (a.k.a. quaternion calibration)
void store(const std::string &file_name, const JDetector &detector)
Store detector to output file.
JSon definitions and auxiliaries.
General purpose messaging.
static const JGetDetectorVersion getDetectorVersion
Function object to map detector version to numerical value.
static const std::string DOM_POSITION_CALIBRATION_t
(optical|base) module positions
std::string setWildCard(const std::string &file_name, const std::string &value)
Get file name by setting wild card to given value.
static const std::string Data_t
Utility class to parse command line options.
std::vector< JServer > getServernames()
Get list of names of available database servers.
Wrapper class for server name.
static const char FILENAME_WILD_CARD
wild card character for file name substitution
const char * getName()
Get ROOT name of given data type.
do set_variable DETECTOR_TXT $WORKDIR detector
void to_json(json &js, const std::string &query)
Get result set.
static const std::string ACOUSTIC_T0_CALIBRATION_t
acoustic time offsets (piezo sensor or hydrophone)
Template definition for getting table specific selector.
#define DEBUG(A)
Message macros.
bool hasWildCard(const std::string &file_name)
Check presence of wild card.