47 JSingleFileScanner<JDAQTypes_t> inputFile;
56 JParser<> zap(
"Auxiliary program to check trigger parameters in a given ROOT files against the values from the database.");
67 catch(
const exception& error) {
68 FATAL(error.what() << endl);
72 const double Dmax_m = 9999.0;
78 DEBUG(
"Get trigger parameters from input file." << endl);
83 catch(
const JException& error) {
84 FATAL(
"No trigger parameters from input." << endl);
87 parametersA.
set(Dmax_m);
95 JObjectMultiplexer<JDAQTypes_t, JDAQHeader> in(inputFile);
99 detector_id = in.next()->getDetectorID();
100 run_number = in.next()->getRunNumber();
104 FATAL(
"File does not contain a valid run number. Aborting" << endl);
111 catch(
const exception& error) {
112 FATAL(error.what() << endl);
122 ResultSet& rs =
getResultSet(getTable<JDetectors>(), getSelector<JDetectors>(detector_id));
130 DEBUG(
"Detector " << detector_id <<
" -> " << detid << endl);
132 catch(
const exception& error) {
133 FATAL(error.what() << endl);
143 ResultSet& rs =
getResultSet(getTable<JRuns>(), getSelector<JRuns>(detector_id, run_number));
146 rs_oid = buffer.RUNSETUPID;
151 DEBUG(
"Run setup " << rs_oid << endl);
153 catch(
const exception& error) {
154 FATAL(error.what() << endl);
165 ResultSet& rs =
getResultSet(getTable<JAllParams>(), getSelector<JAllParams>(
"DATAACQUISITION"));
167 while (rs >> buffer) {
169 umap[buffer.OID] = buffer.NAME;
173 if (pos != string::npos) {
177 while (pos + len != buffer.NAME.length() && buffer.NAME[pos + len] !=
'=') {
181 zmap[buffer.OID] = buffer.NAME.erase(pos, len + 1);
187 DEBUG(
"Parameters map " << zmap.size() << endl);
189 catch(
const exception& error) {
190 FATAL(error.what() << endl);
198 JRunsetupParams buffer;
200 ResultSet& rs =
getResultSet(getTable<JRunsetupParams>(), getSelector<JRunsetupParams>(detid, rs_oid));
202 while (rs >> buffer) {
204 DEBUG(buffer.PAR_OID <<
"->" << umap[buffer.PAR_OID] <<
" = " << buffer.VALUE << endl);
208 if (i != zmap.end()) {
209 data << i->second <<
"=" << buffer.VALUE <<
";\n";
213 catch(
const exception& error) {
214 FATAL(error.what() << endl);
217 DEBUG(
"Raw data" << endl <<
"<<" << endl << data.str() <<
">>" << endl);
222 parametersB.
set(Dmax_m);
223 parametersB.actionAtFileRead();
236 JSingleFileScanner<JRemove<JAllTypes_t, JTriggerParameters>::typelist> io(inputFile);
246 const bool is_equal = (parametersA == parametersB);
249 NOTICE(
GREEN <<
"The parameters for run " << run_number <<
" are equivalent." <<
RESET << endl);
251 ERROR (
RED <<
"The parameters for run " << run_number <<
" are NOT equivalent." <<
RESET << endl);
253 return (is_equal ? 0 : 1);