26 int main(
int argc,
char **argv)
30 using namespace KM3NETDAQ;
33 JPMTParametersMap parameters;
39 JParser<> zap(
"Auxiliary application to plot PMT parameters.");
41 zap[
'a'] =
make_field(detectorFile,
"detector file.");
43 zap[
'P'] =
make_field(parameters,
"PMT calibration data (or corresponding file name)");
48 catch(
const exception &error) {
49 FATAL(error.what() << endl);
55 load(detectorFile, detector);
57 catch(
const JException& error) {
61 if (detector.empty()) {
62 FATAL(
"Empty detector." << endl);
68 for (JDetector::iterator module = detector.begin(); module != detector.end(); ++module) {
70 DEBUG(
"Module " << setw(10) << module->getID() << endl);
74 const JProperties properties = parameters.getPMTParameters(JPMTIdentifier(module->getID(), pmt)).getProperties();
76 for (JProperties::const_iterator p = properties.begin(); p != properties.end(); ++p) {
79 manager[
MAKE_CSTRING(module->getID() <<
"." << p->first)]->Fill((Double_t) pmt, p->second.getValue<
const double>());
81 catch(
const exception& error) {}
84 manager[
MAKE_CSTRING(module->getID() <<
"." << p->first)]->Fill((Double_t) pmt, p->second.getValue<
const bool>() ? 1.0 : 0.0);
86 catch(
const exception& error) {}
Utility class to parse command line options.
Utility class to parse parameter values.
#define MAKE_CSTRING(A)
Make C-string.
Dynamic ROOT object management.
Data structure for detector geometry and calibration.
I/O formatting auxiliaries.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
void load(const JString &file_name, JDetector &detector)
Load detector from input file.
General purpose messaging.
Utility class to parse command line options.
void Write(TFile &out)
Write histograms to file.
KM3NeT DAQ constants, bit handling, etc.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
#define DEBUG(A)
Message macros.
int main(int argc, char *argv[])