Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
JCheckTriggerParameters.cc File Reference

Auxiliary program to check trigger parameters in a given ROOT files against the values from the database. More...

Go to the source code of this file.

Functions

int main (const int argc, const char *const argv[])
 

Detailed Description

Auxiliary program to check trigger parameters in a given ROOT files against the values from the database.

Author
lnauta

Definition in file JCheckTriggerParameters.cc.

Function Documentation

◆ main()

int main ( const int argc,
const char *const argv[] )

Definition at line 42 of file JCheckTriggerParameters.cc.

43{
44 using namespace std;
45 using namespace JPP;
46 using namespace KM3NETDAQ;
47
49 JFileRecorder <JAllTypes_t> outputFile;
50 JServer server;
51 string usr;
52 string pwd;
53 string cookie;
54 int debug;
55
56 try {
57
58 JParser<> zap("Auxiliary program to check trigger parameters in a given ROOT files against the values from the database.");
59
60 zap['f'] = make_field(inputFile);
61 zap['s'] = make_field(server) = getServernames();
62 zap['u'] = make_field(usr) = "";
63 zap['!'] = make_field(pwd) = "";
64 zap['C'] = make_field(cookie) = "";
65 zap['o'] = make_field(outputFile) = "";
66 zap['d'] = make_field(debug) = 1;
67
68 zap(argc, argv);
69 }
70 catch(const exception& error) {
71 FATAL(error.what() << endl);
72 }
73
74
75 const double Dmax_m = 9999.0;
76
77 JTriggerParameters parametersA;
78 JTriggerParameters parametersB;
79
80
81 try {
82 parametersA = getTriggerParameters(inputFile);
83 }
84 catch(const JException& error) {
85 ERROR("No trigger parameters from input." << endl);
86 }
87
88 parametersA.set(Dmax_m);
89
90 DEBUG(parametersA);
91
92
93 int detector_id = 0;
94 int run_number = 0;
95
97
98 if (in.hasNext()) {
99
100 detector_id = in.next()->getDetectorID();
101 run_number = in.next()->getRunNumber();
102
103 } else {
104
105 FATAL("File does not contain a valid run number." << endl);
106 }
107
108
109 try {
110 JDB::reset(usr, pwd, cookie);
111 }
112 catch(const exception& error) {
113 FATAL(error.what() << endl);
114 }
115
116
117 string rs_oid;
118
119 try {
120
121 JRuns buffer;
122
123 ResultSet& rs = getResultSet(getTable<JRuns>(), getSelector<JRuns>(detector_id, run_number));
124
125 if (rs >> buffer) {
126 rs_oid = buffer.RUNSETUPID;
127 }
128
129 rs.Close();
130 }
131 catch(const exception& error) {
132 FATAL(error.what() << endl);
133 }
134
135
137
138 try {
139
140 JAllParams buffer;
141
142 ResultSet& rs = getResultSet(getTable<JAllParams>(), getSelector<JAllParams>("DATAACQUISITION"));
143
144 while (rs >> buffer) {
145
146 string::size_type pos = buffer.NAME.find(PREFIX_DATAFILTER);
147
148 if (pos != string::npos) {
149
150 pos = buffer.NAME.find('=', pos + PREFIX_DATAFILTER.length());
151
152 zmap[buffer.OID] = buffer.NAME.erase(0, pos + 1);
153 }
154 }
155
156 rs.Close();
157 }
158 catch(const exception& error) {
159 FATAL(error.what() << endl);
160 }
161
162
163 stringstream data;
164
165 try {
166
167 JRunsetupParams buffer;
168
169 ResultSet& rs = getResultSet(getTable<JRunsetupParams>(), getSelector<JRunsetupParams>(getDetector(detector_id), rs_oid));
170
171 while (rs >> buffer) {
172
173 map<string, string>::const_iterator i = zmap.find(buffer.PAR_OID);
174
175 if (i != zmap.end()) {
176 data << i->second << "=" << buffer.VALUE << ";\n";
177 }
178 }
179
180 rs.Close();
181 }
182 catch(const exception& error) {
183 FATAL(error.what() << endl);
184 }
185
186
187 data >> parametersB;
188
189 parametersB.set(Dmax_m);
190 parametersB.actionAtFileRead();
191
192 DEBUG(parametersB);
193
194
195 if (outputFile.getFilename() != "") {
196
197 DEBUG("Write to " << outputFile << "... " << flush);
198
199 outputFile.open();
200
201 outputFile.put(parametersB);
202
204
205 io >> outputFile;
206
207 outputFile.close();
208
209 DEBUG("OK" << endl);
210 }
211
212
213 const bool is_equal = (parametersA == parametersB);
214
215 if (is_equal)
216 NOTICE(GREEN << "The parameters for run " << run_number << " are equivalent." << RESET << endl);
217 else
218 ERROR (RED << "The parameters for run " << run_number << " are NOT equivalent." << RESET << endl);
219
220 return (is_equal ? 0 : 1);
221}
string outputFile
#define DEBUG(A)
Message macros.
Definition JMessage.hh:62
#define NOTICE(A)
Definition JMessage.hh:64
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
General exception.
Definition JException.hh:24
Auxiliary class for multiplexing object iterators.
Utility class to parse command line options.
Definition JParser.hh:1698
Object reading from a list of files.
ResultSet & getResultSet(const std::string &query)
Get result set.
Definition JDB.hh:438
const char * getTable()
Get table name.
Definition JDB.hh:373
JDetectorsHelper & getDetector()
Auxiliary function for helper object initialisation.
static const std::string PREFIX_DATAFILTER
This string is prepended to every parameter in the database output for the corresponding process.
Definition JDB.hh:184
std::vector< JServer > getServernames()
Get list of names of available database servers.
Definition JDB.hh:108
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
JTriggerParameters getTriggerParameters(const JMultipleFileScanner_t &file_list)
Get trigger parameters.
KM3NeT DAQ data structures and auxiliaries.
Definition DataQueue.cc:39
std::string RUNSETUPID
Definition JRuns.hh:26
Wrapper class for server name.
Definition JDB.hh:54
Template definition for getting table specific selector.