49{
53
54 string detectorFile;
57 bool showPMTAddress;
59
60 try {
61
62 JParser<> zap(
"Auxiliary application to plot PMT parameters.");
63
64 zap[
'a'] =
make_field(detectorFile,
"detector file.");
66 zap[
'P'] =
make_field(parameters,
"PMT calibration data (or corresponding file name)");
67 zap[
'A'] =
make_field(showPMTAddress,
"show PMT address on y-axis");
69
70 zap(argc, argv);
71 }
72 catch(const exception &error) {
73 FATAL(error.what() << endl);
74 }
75
77
78 try {
80 }
83 }
84
86 FATAL(
"Empty detector." << endl);
87 }
88
89 JManager<string, TH1D> manager(new TH1D("%", NULL, NUMBER_OF_PMTS, -0.5, NUMBER_OF_PMTS - 0.5));
90
91 for (JDetector::iterator module =
detector.begin(); module !=
detector.end(); ++module) {
92
93 DEBUG(
"Module " << setw(10) << module->getID() << endl);
94
95 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
96
98
99 for (JProperties::const_iterator p = properties.begin(); p != properties.end(); ++p) {
100
101 double value = 0.0;
102
103 try { value = (p->second.getValue<const double>()); } catch(const exception& error) {}
104 try { value = (p->second.getValue<const bool>() ? 1.0 : 0.0); } catch(const exception& error) {}
105
106 manager[
MAKE_CSTRING(module->getID() <<
"." << p->first)]->SetBinContent(pmt + 1, value);
107 }
108
110
111 manager[
MAKE_CSTRING(module->getID() <<
"." << EFFICIENCY)]->SetBinContent(pmt + 1, value);
112 }
113 }
114
115 if (showPMTAddress) {
116
118
119 for (JManager<string, TH1D>::iterator i = manager.begin(); i != manager.end(); ++i) {
120
121 int id;
122
123 istringstream(i->first) >> id;
124
126 }
127 }
128
130}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
#define MAKE_CSTRING(A)
Make C-string.
Lookup table for PMT addresses in detector.
const JModuleAddressMap & get(const int id) const
Get module address map.
Auxiliary class for map of PMT parameters.
const JPMTParameters & getPMTParameters(const JPMTIdentifier &id) const
Get PMT parameters.
JProperties getProperties(const JEquationParameters &equation=JPMTParameters::getEquationParameters())
Get properties of this class.
Utility class to parse parameter values.
Utility class to parse command line options.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
JDetectorAddressMap & getDetectorAddressMap()
Get detector address map.
void setAxisLabels(TAxis *axis, const JModuleAddressMap &memo)
Set axis with PMT address labels.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
KM3NeT DAQ data structures and auxiliaries.