Jpp 20.0.0-27-g39925593c-D
the software that should make you happy
Loading...
Searching...
No Matches
JRuns.cc
Go to the documentation of this file.
1#include <iostream>
2#include <iomanip>
3#include <vector>
4
5#include "TTimeStamp.h"
6#include "TRegexp.h"
7
8#include "JDB/JDB.hh"
9#include "JDB/JSelector.hh"
11#include "JDB/JRuns.hh"
12#include "JDB/JDBToolkit.hh"
13
14#include "JLang/JLangToolkit.hh"
15#include "JROOT/JRootPrinter.hh"
16#include "JROOT/JRootToolkit.hh"
17
18#include "Jeep/JPrint.hh"
19#include "Jeep/JParser.hh"
20#include "Jeep/JMessage.hh"
21
22
23/**
24 * \file
25 *
26 * Example program to print run related data from data base.
27 * \author mdejong
28 */
29int main(int argc, char **argv)
30{
31 using namespace std;
32 using namespace JPP;
33
34 JServer server;
35 string usr;
36 string pwd;
37 string cookie;
38 string detid;
39 TRegexp regexp(".");
40 vector<string> format;
41 JSelector selection;
42 string option;
43 int debug;
44
45 try {
46
47 JParser<> zap("Example program to print run related data from data base.");
48
49 zap['s'] = make_field(server) = getServernames();
50 zap['u'] = make_field(usr) = "";
51 zap['!'] = make_field(pwd) = "";
52 zap['C'] = make_field(cookie) = "";
53 zap['D'] = make_field(detid);
54 zap['r'] = make_field(regexp, "TRegexp for selection of run setup names.") = JPARSER::initialised();
55 zap['F'] = make_field(format, "column names: " << JEEPZ() << getColumns<JRuns>()) = JPARSER::initialised();
56 zap['@'] = make_field(selection) = JPARSER::initialised();
57 zap['O'] = make_field(option, "print UNIX time as TTimeStamp::AsString(<option>)") = "";
58 zap['d'] = make_field(debug) = 2;
59
60 zap(argc, argv);
61 }
62 catch(const exception &error) {
63 FATAL(error.what() << endl);
64 }
65
66
67 if (format.empty()) {
68 format = getColumns<JRuns>();
69 }
70
71 try {
72
73 JDB::reset(usr, pwd, cookie);
74
75 const int id = getDetector<int>(detid);
76
77 selection += getSelector<JRuns>(id);
78
79 ResultSet& rs = getResultSet(getTable<JRuns>(), selection);
80
81 for (JRuns parameters; selection >> parameters && rs >> parameters; ) {
82
83 if (TString(parameters.RUNSETUPNAME.c_str()).Contains(regexp)) {
84
85 for (vector<string>::const_iterator i = format.begin(); i != format.end(); ++i) {
86
87 if (option != "" && *i == "UNIXJOBSTART")
88 cout << ' ' << TTimeStamp((time_t) (parameters.UNIXJOBSTART /1000)).AsString(option.c_str());
89 else if (option != "" && *i == "UNIXJOBEND")
90 cout << ' ' << TTimeStamp((time_t) (parameters.UNIXJOBEND /1000)).AsString(option.c_str());
91 else
92 JRootPrinter::print(cout, parameters, *i);
93 }
94
95 cout << endl;
96 }
97 }
98 }
99 catch(const exception& error) {
100 FATAL(error.what() << endl);
101 }
102}
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
I/O formatting auxiliaries.
Print objects in ASCII format using ROOT dictionary.
int main(int argc, char **argv)
Definition JRuns.cc:29
Template definition of a multi-dimensional oscillation probability interpolation table.
Utility class to parse command line options.
Definition JParser.hh:1698
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Wrapper class for server name.
Definition JDB.hh:54
Auxiliary data structure for streaming of STL containers.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Definition JParser.hh:68