Jpp  15.0.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
JCheckTriggerParameters.cc File Reference

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

#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include "km3net-dataformat/offline/Head.hh"
#include "km3net-dataformat/offline/Evt.hh"
#include "JDAQ/JDAQTimesliceIO.hh"
#include "JDAQ/JDAQEventIO.hh"
#include "JDAQ/JDAQSummarysliceIO.hh"
#include "JTrigger/JTriggerParameters.hh"
#include "JSupport/JSingleFileScanner.hh"
#include "JSupport/JFileRecorder.hh"
#include "JSupport/JMonteCarloFileSupportkit.hh"
#include "JSupport/JTriggerParametersSupportkit.hh"
#include "JSupport/JSupport.hh"
#include "JSupport/JMeta.hh"
#include "JLang/JObjectMultiplexer.hh"
#include "JDB/JDB.hh"
#include "JDB/JDBToolkit.hh"
#include "JDB/JSelector.hh"
#include "JDB/JSelectorSupportkit.hh"
#include "JDB/JDetectors.hh"
#include "JDB/JRuns.hh"
#include "JDB/JAllParams.hh"
#include "JDB/JRunsetupParams.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

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

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 
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  FATAL("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. Aborting" << 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 
136  map<string, string> zmap;
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 }
Object writing to file.
Utility class to parse command line options.
Definition: JParser.hh:1500
General exception.
Definition: JException.hh:23
Auxiliary class for multiplexing object iterators.
string outputFile
JDetectorsHelper & getDetector()
Auxiliary function for helper object initialisation.
Definition: JDBToolkit.hh:365
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1961
#define NOTICE(A)
Definition: JMessage.hh:64
#define ERROR(A)
Definition: JMessage.hh:66
int debug
debug level
Definition: JSirene.cc:63
#define FATAL(A)
Definition: JMessage.hh:67
void reset(T &value)
Reset value.
static const std::string PREFIX_DATAFILTER
This string is prepended to every parameter in the database output for the corresponding process...
Definition: JDB.hh:174
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
ResultSet & getResultSet(const std::string &query)
Get result set.
Definition: JDB.hh:432
std::vector< JServer > getServernames()
Get list of names of available database servers.
Definition: JDB.hh:98
Wrapper class for server name.
Definition: JDB.hh:42
Object reading from a list of files.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:42
Template definition for getting table specific selector.
JTriggerParameters getTriggerParameters(const JMultipleFileScanner_t &file_list)
Get trigger parameters.
std::string RUNSETUPID
Definition: JRuns.hh:26